Client can now send chunked transfer encoded content
This commit is contained in:
parent
0c8da107a6
commit
4f67773a25
1 changed files with 16 additions and 4 deletions
|
|
@ -252,8 +252,14 @@ namespace SimpleWeb {
|
||||||
};
|
};
|
||||||
|
|
||||||
std::ostream write_stream(session->request_streambuf.get());
|
std::ostream write_stream(session->request_streambuf.get());
|
||||||
if(content.size() > 0)
|
if(content.size() > 0) {
|
||||||
write_stream << "Content-Length: " << content.size() << "\r\n";
|
auto header_it = header.find("Content-Length");
|
||||||
|
if(header_it == header.end()) {
|
||||||
|
header_it = header.find("Transfer-Encoding");
|
||||||
|
if(header_it == header.end() || header_it->second != "chunked")
|
||||||
|
write_stream << "Content-Length: " << content.size() << "\r\n";
|
||||||
|
}
|
||||||
|
}
|
||||||
write_stream << "\r\n"
|
write_stream << "\r\n"
|
||||||
<< content;
|
<< content;
|
||||||
|
|
||||||
|
|
@ -314,8 +320,14 @@ namespace SimpleWeb {
|
||||||
auto content_length = content.tellg();
|
auto content_length = content.tellg();
|
||||||
content.seekg(0, std::ios::beg);
|
content.seekg(0, std::ios::beg);
|
||||||
std::ostream write_stream(session->request_streambuf.get());
|
std::ostream write_stream(session->request_streambuf.get());
|
||||||
if(content_length > 0)
|
if(content_length > 0) {
|
||||||
write_stream << "Content-Length: " << content_length << "\r\n";
|
auto header_it = header.find("Content-Length");
|
||||||
|
if(header_it == header.end()) {
|
||||||
|
header_it = header.find("Transfer-Encoding");
|
||||||
|
if(header_it == header.end() || header_it->second != "chunked")
|
||||||
|
write_stream << "Content-Length: " << content_length << "\r\n";
|
||||||
|
}
|
||||||
|
}
|
||||||
write_stream << "\r\n";
|
write_stream << "\r\n";
|
||||||
if(content_length > 0)
|
if(content_length > 0)
|
||||||
write_stream << content.rdbuf();
|
write_stream << content.rdbuf();
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue