Commit 9eef2b77 authored by Michael Niedermayer's avatar Michael Niedermayer

no read loop tcp/http and http CRLF fix by (Leon van Stuivenberg <l dot...

no read loop tcp/http and http CRLF fix by (Leon van Stuivenberg <l dot vanstuivenberg at chello dot nl>)

Originally committed as revision 2885 to svn://svn.ffmpeg.org/ffmpeg/trunk
parent c3775e54
......@@ -183,11 +183,11 @@ static int http_connect(URLContext *h, const char *path, const char *hoststr)
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,10 +238,8 @@ static int http_connect(URLContext *h, const char *path, const char *hoststr)
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) {
......@@ -250,17 +248,9 @@ static int http_read(URLContext *h, uint8_t *buf, int 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;
len = url_read(s->hd, buf, size);
}
}
size -= len;
buf += len;
}
return size1 - size;
return len;
}
/* used only when posting data */
......
......@@ -141,12 +141,11 @@ static int tcp_open(URLContext *h, const char *uri, int flags)
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 @@ static int tcp_read(URLContext *h, uint8_t *buf, int size)
#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)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment