Merge branch 'develop' into merge/develop

pull/2943/head
winlin 3 years ago
commit 56535cd475

@ -263,12 +263,12 @@ int SrsHttpParser::on_header_value(http_parser* parser, const char* at, size_t l
if (length > 0) {
obj->field_value.append(at, (int)length);
}
// When header parsed, we must save the position of start for body,
// because we have to consume the header in buffer.
// @see https://github.com/ossrs/srs/issues/1508
obj->p_header_tail = at;
// When header parsed, we must save the position of start for body,
// because we have to consume the header in buffer.
// @see https://github.com/ossrs/srs/issues/1508
obj->p_header_tail = at;
}
srs_info("Header value(%d bytes): %.*s", (int)length, (int)length, at);
return 0;

@ -143,6 +143,16 @@ string mock_http_response2(int status, string content)
return ss.str();
}
string mock_http_response3(int status, string content)
{
stringstream ss;
ss << "HTTP/1.1 " << status << " " << srs_generate_http_status_text(status) << "\r\n"
<< "Server:" << "\r\n"
<< "\r\n"
<< content;
return ss.str();
}
bool is_string_contain(string substr, string str)
{
return (string::npos != str.find(substr));
@ -528,6 +538,17 @@ VOID TEST(ProtocolHTTPTest, ClientRequest)
EXPECT_STREQ("Hello, world!", res.c_str());
srs_freep(msg);
}
// Normal case, with empty server.
if(true) {
MockBufferIO io; io.append(mock_http_response3(200, "Hello, world!"));
SrsHttpParser hp; HELPER_ASSERT_SUCCESS(hp.initialize(HTTP_RESPONSE));
ISrsHttpMessage* msg = NULL; HELPER_ASSERT_SUCCESS(hp.parse_message(&io, &msg));
string res; HELPER_ASSERT_SUCCESS(msg->body_read_all(res));
EXPECT_EQ(200, msg->status_code());
EXPECT_STREQ("Hello, world!", res.c_str());
srs_freep(msg);
}
}
VOID TEST(ProtocolHTTPTest, ResponseHTTPError)

Loading…
Cancel
Save