string protocol;
parse_url(url, &protocol, &host, &port, &path); // Don't care if it fails.
+
+ // Older versions stored the extra \r\n in the HTTP header.
+ // Strip it if we find it.
+ if (http_header.size() >= 4 &&
+ memcmp(http_header.data() + http_header.size() - 4, "\r\n\r\n", 4) == 0) {
+ http_header.resize(http_header.size() - 2);
+ }
}
void HTTPInput::close_socket()
++it) {
http_header.append(it->first + ": " + it->second + "\r\n");
}
- http_header.append("\r\n");
for (size_t i = 0; i < stream_ids.size(); ++i) {
- servers->set_header(stream_ids[i], http_header);
+ servers->set_header(stream_ids[i], http_header, "");
}
return true;
response.clear();
pending_data.clear();
for (size_t i = 0; i < stream_ids.size(); ++i) {
- servers->set_header(stream_ids[i], "");
+ servers->set_header(stream_ids[i], "", "");
}
{
if (flags & METACUBE_FLAGS_HEADER) {
string header(inner_data, inner_data + size);
for (size_t i = 0; i < stream_ids.size(); ++i) {
- servers->set_header(stream_ids[i], http_header + header);
+ servers->set_header(stream_ids[i], http_header, header);
}
} else {
for (size_t i = 0; i < stream_ids.size(); ++i) {