From: Andre Noll Date: Sat, 22 Nov 2008 16:49:39 +0000 (+0100) Subject: http_recv: Fix reading of the HTTP OK message pattern. X-Git-Tag: v0.3.3~27 X-Git-Url: http://git.tuebingen.mpg.de/?p=paraslash.git;a=commitdiff_plain;h=7ddeb416451e763677f1638263e26e0855d79d91;hp=8f3685d67bcec78c7028eedc9ee0fcaefb3aa13f http_recv: Fix reading of the HTTP OK message pattern. This bug leads to sound artefacts at the beginning of the stream caused by calling recv_pattern() with a buffer size larger than the HTTP OK message. It may thus happen that the buffer used by recv_pattern() contains not only the HTTP OK message but also the beginning of the stream. Since that buffer is discarded by recv_pattern(), the first few bytes of the stream are lost if this happens. Fix it by passing the exact length of the HTTP OK message to recv_pattern(). --- diff --git a/http_recv.c b/http_recv.c index 2e518b20..c7eb485a 100644 --- a/http_recv.c +++ b/http_recv.c @@ -119,7 +119,7 @@ static void http_recv_post_select(struct sched *s, struct task *t) if (!FD_ISSET(phd->fd, &s->rfds)) return; if (phd->status == HTTP_SENT_GET_REQUEST) { - t->error = recv_pattern(phd->fd, HTTP_OK_MSG, MAXLINE); + t->error = recv_pattern(phd->fd, HTTP_OK_MSG, strlen(HTTP_OK_MSG)); if (t->error >= 0) { PARA_INFO_LOG("received ok msg, streaming\n"); phd->status = HTTP_STREAMING;