From: Martin Storsjo Date: Mon, 21 May 2012 15:17:31 +0000 (+0300) Subject: Don't require 144 bytes to be buffered before proceeding with HTTP_read X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=4ded9e053744e54286ab9af4e9657f5926a79a2c;p=rtmpdump Don't require 144 bytes to be buffered before proceeding with HTTP_read This makes the code more flexible, if servers were to use smaller headers. --- diff --git a/librtmp/rtmp.c b/librtmp/rtmp.c index 0d28666..21e2c18 100644 --- a/librtmp/rtmp.c +++ b/librtmp/rtmp.c @@ -3849,11 +3849,20 @@ HTTP_read(RTMP *r, int fill) restart: if (fill) RTMPSockBuf_Fill(&r->m_sb); - if (r->m_sb.sb_size < 144) + if (r->m_sb.sb_size < 13) { + if (fill) + goto restart; return -2; + } if (strncmp(r->m_sb.sb_start, "HTTP/1.1 200 ", 13)) return -1; r->m_sb.sb_start[r->m_sb.sb_size] = '\0'; + if (!strstr(r->m_sb.sb_start, "\r\n\r\n")) { + if (fill) + goto restart; + return -2; + } + ptr = r->m_sb.sb_start + sizeof("HTTP/1.1 200"); while ((ptr = strstr(ptr, "Content-"))) { if (!strncasecmp(ptr+8, "length:", 7)) break;