mirror of
https://github.com/ossrs/srs.git
synced 2025-02-15 04:42:04 +00:00
Merge branch '2.0release' of github.com:winlinvip/simple-rtmp-server into 2.0release
This commit is contained in:
commit
623e37e22a
2 changed files with 6 additions and 7 deletions
|
@ -1401,7 +1401,7 @@ int SrsHttpParser::parse_message(SrsStSocket* skt, SrsHttpMessage** ppmsg)
|
||||||
header = http_parser();
|
header = http_parser();
|
||||||
url = "";
|
url = "";
|
||||||
headers.clear();
|
headers.clear();
|
||||||
body_parsed = 0;
|
header_parsed = 0;
|
||||||
|
|
||||||
// do parse
|
// do parse
|
||||||
if ((ret = parse_message_imp(skt)) != ERROR_SUCCESS) {
|
if ((ret = parse_message_imp(skt)) != ERROR_SUCCESS) {
|
||||||
|
@ -1437,12 +1437,12 @@ int SrsHttpParser::parse_message_imp(SrsStSocket* skt)
|
||||||
// when buffer not empty, parse it.
|
// when buffer not empty, parse it.
|
||||||
if (buffer->size() > 0) {
|
if (buffer->size() > 0) {
|
||||||
nparsed = http_parser_execute(&parser, &settings, buffer->bytes(), buffer->size());
|
nparsed = http_parser_execute(&parser, &settings, buffer->bytes(), buffer->size());
|
||||||
srs_info("buffer=%d, nparsed=%d, body=%d", buffer->size(), (int)nparsed, body_parsed);
|
srs_info("buffer=%d, nparsed=%d, header=%d", buffer->size(), (int)nparsed, header_parsed);
|
||||||
}
|
}
|
||||||
|
|
||||||
// consume the parsed bytes.
|
// consume the parsed bytes.
|
||||||
if (nparsed && nparsed - body_parsed > 0) {
|
if (nparsed && header_parsed) {
|
||||||
buffer->read_slice((int)nparsed - (int)body_parsed);
|
buffer->read_slice(header_parsed);
|
||||||
}
|
}
|
||||||
|
|
||||||
// ok atleast header completed,
|
// ok atleast header completed,
|
||||||
|
@ -1491,6 +1491,7 @@ int SrsHttpParser::on_headers_complete(http_parser* parser)
|
||||||
obj->header = *parser;
|
obj->header = *parser;
|
||||||
// save the parser when header parse completed.
|
// save the parser when header parse completed.
|
||||||
obj->state = SrsHttpParseStateHeaderComplete;
|
obj->state = SrsHttpParseStateHeaderComplete;
|
||||||
|
obj->header_parsed = (int)parser->nread;
|
||||||
|
|
||||||
srs_info("***HEADERS COMPLETE***");
|
srs_info("***HEADERS COMPLETE***");
|
||||||
|
|
||||||
|
@ -1567,8 +1568,6 @@ int SrsHttpParser::on_body(http_parser* parser, const char* at, size_t length)
|
||||||
SrsHttpParser* obj = (SrsHttpParser*)parser->data;
|
SrsHttpParser* obj = (SrsHttpParser*)parser->data;
|
||||||
srs_assert(obj);
|
srs_assert(obj);
|
||||||
|
|
||||||
obj->body_parsed += length;
|
|
||||||
|
|
||||||
srs_info("Body: %.*s", (int)length, at);
|
srs_info("Body: %.*s", (int)length, at);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
|
@ -599,7 +599,7 @@ private:
|
||||||
http_parser header;
|
http_parser header;
|
||||||
std::string url;
|
std::string url;
|
||||||
std::vector<SrsHttpHeaderField> headers;
|
std::vector<SrsHttpHeaderField> headers;
|
||||||
int body_parsed;
|
int header_parsed;
|
||||||
public:
|
public:
|
||||||
SrsHttpParser();
|
SrsHttpParser();
|
||||||
virtual ~SrsHttpParser();
|
virtual ~SrsHttpParser();
|
||||||
|
|
Loading…
Reference in a new issue