# HG changeset patch # User michael # Date 1079233173 0 # Node ID 2f56d366a7873641beca77c6a7a46fdd01884bb7 # Parent 9479dac2562067da397a47784ef683b3be2bf284 no read loop tcp/http and http CRLF fix by (Leon van Stuivenberg ) diff -r 9479dac25620 -r 2f56d366a787 http.c --- a/http.c Sat Mar 13 23:04:37 2004 +0000 +++ b/http.c Sun Mar 14 02:59:33 2004 +0000 @@ -183,11 +183,11 @@ post = h->flags & URL_WRONLY; snprintf(s->buffer, sizeof(s->buffer), - "%s %s HTTP/1.0\n" - "User-Agent: %s\n" - "Accept: */*\n" - "Host: %s\n" - "\n", + "%s %s HTTP/1.0\r\n" + "User-Agent: %s\r\n" + "Accept: */*\r\n" + "Host: %s\r\n" + "\r\n", post ? "POST" : "GET", path, LIBAVFORMAT_IDENT, @@ -238,29 +238,19 @@ static int http_read(URLContext *h, uint8_t *buf, int size) { HTTPContext *s = h->priv_data; - int size1, len; + int len; - size1 = size; - while (size > 0) { - /* read bytes from input buffer first */ - len = s->buf_end - s->buf_ptr; - if (len > 0) { - if (len > size) - len = size; - memcpy(buf, s->buf_ptr, len); - s->buf_ptr += len; - } else { - len = url_read (s->hd, buf, size); - if (len < 0) { - return len; - } else if (len == 0) { - break; - } - } - size -= len; - buf += len; + /* read bytes from input buffer first */ + len = s->buf_end - s->buf_ptr; + if (len > 0) { + if (len > size) + len = size; + memcpy(buf, s->buf_ptr, len); + s->buf_ptr += len; + } else { + len = url_read(s->hd, buf, size); } - return size1 - size; + return len; } /* used only when posting data */ diff -r 9479dac25620 -r 2f56d366a787 tcp.c --- a/tcp.c Sat Mar 13 23:04:37 2004 +0000 +++ b/tcp.c Sun Mar 14 02:59:33 2004 +0000 @@ -141,12 +141,11 @@ static int tcp_read(URLContext *h, uint8_t *buf, int size) { TCPContext *s = h->priv_data; - int size1, len, fd_max; + int len, fd_max; fd_set rfds; struct timeval tv; - size1 = size; - while (size > 0) { + for (;;) { if (url_interrupt_cb()) return -EINTR; fd_max = s->fd; @@ -167,15 +166,9 @@ #else return -errno; #endif - else - continue; - } else if (len == 0) { - break; - } - size -= len; - buf += len; + } else break; } - return size1 - size; + return len; } static int tcp_write(URLContext *h, uint8_t *buf, int size)