From: Steinar H. Gunderson Date: Mon, 9 May 2016 21:26:16 +0000 (+0200) Subject: Make the HTTP client send the right Host: header. X-Git-Tag: 1.3.0~8 X-Git-Url: https://git.sesse.net/?p=cubemap;a=commitdiff_plain;h=924cf08c048e851227143c3f311bc17eb64a6319 Make the HTTP client send the right Host: header. --- diff --git a/httpinput.cpp b/httpinput.cpp index 5a93969..9412e78 100644 --- a/httpinput.cpp +++ b/httpinput.cpp @@ -30,6 +30,19 @@ using namespace std; +namespace { + +string host_header(const string &host, const string &port) +{ + if (atoi(port.c_str()) == 80) { + return host; + } else { + return host + ":" + port; + } +} + +} // namespace + extern ServerPool *servers; HTTPInput::HTTPInput(const string &url, Input::Encoding encoding) @@ -339,7 +352,7 @@ void HTTPInput::do_work() state = CLOSING_SOCKET; } else { state = SENDING_REQUEST; - request = "GET " + path + " HTTP/1.0\r\nUser-Agent: cubemap\r\n\r\n"; + request = "GET " + path + " HTTP/1.0\r\nHost: " + host_header(host, port) + "\r\nUser-Agent: cubemap\r\n\r\n"; request_bytes_sent = 0; }