mirror of
https://github.com/ossrs/srs.git
synced 2025-03-09 15:49:59 +00:00
fix #400, parse when got entire http header, by feilong. 2.0.164.
This commit is contained in:
parent
5d7b0edccc
commit
948d200ce1
3 changed files with 13 additions and 5 deletions
|
@ -562,6 +562,7 @@ Supported operating systems and hardware:
|
||||||
|
|
||||||
### SRS 2.0 history
|
### SRS 2.0 history
|
||||||
|
|
||||||
|
* v2.0, 2015-05-22, for [#400](https://github.com/simple-rtmp-server/srs/issues/400), parse when got entire http header, by feilong. 2.0.164.
|
||||||
* v2.0, 2015-05-19, merge from bravo system, add the rtmfp to bms(commercial srs). 2.0.163.
|
* v2.0, 2015-05-19, merge from bravo system, add the rtmfp to bms(commercial srs). 2.0.163.
|
||||||
* v2.0, 2015-05-10, support push flv stream over HTTP POST to SRS.
|
* v2.0, 2015-05-10, support push flv stream over HTTP POST to SRS.
|
||||||
* v2.0, 2015-04-20, support ingest hls live stream to RTMP.
|
* v2.0, 2015-04-20, support ingest hls live stream to RTMP.
|
||||||
|
|
|
@ -1447,10 +1447,17 @@ int SrsHttpParser::parse_message_imp(SrsStSocket* skt)
|
||||||
while (true) {
|
while (true) {
|
||||||
ssize_t nparsed = 0;
|
ssize_t nparsed = 0;
|
||||||
|
|
||||||
// when buffer not empty, parse it.
|
// when got entire http header, parse it.
|
||||||
if (buffer->size() > 0) {
|
// @see https://github.com/simple-rtmp-server/srs/issues/400
|
||||||
nparsed = http_parser_execute(&parser, &settings, buffer->bytes(), buffer->size());
|
char* start = buffer->bytes();
|
||||||
srs_info("buffer=%d, nparsed=%d, header=%d", buffer->size(), (int)nparsed, header_parsed);
|
char* end = start + buffer->size();
|
||||||
|
for (char* p = start; p <= end - 4; p++) {
|
||||||
|
// SRS_HTTP_CRLFCRLF "\r\n\r\n" // 0x0D0A0D0A
|
||||||
|
if (p[0] == SRS_CONSTS_CR && p[1] == SRS_CONSTS_LF && p[2] == SRS_CONSTS_CR && p[3] == SRS_CONSTS_LF) {
|
||||||
|
nparsed = http_parser_execute(&parser, &settings, buffer->bytes(), buffer->size());
|
||||||
|
srs_info("buffer=%d, nparsed=%d, header=%d", buffer->size(), (int)nparsed, header_parsed);
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// consume the parsed bytes.
|
// consume the parsed bytes.
|
||||||
|
|
|
@ -31,7 +31,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
// current release version
|
// current release version
|
||||||
#define VERSION_MAJOR 2
|
#define VERSION_MAJOR 2
|
||||||
#define VERSION_MINOR 0
|
#define VERSION_MINOR 0
|
||||||
#define VERSION_REVISION 163
|
#define VERSION_REVISION 164
|
||||||
|
|
||||||
// server info.
|
// server info.
|
||||||
#define RTMP_SIG_SRS_KEY "SRS"
|
#define RTMP_SIG_SRS_KEY "SRS"
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue