X-Git-Url: https://git.sesse.net/?p=cubemap;a=blobdiff_plain;f=httpinput.cpp;h=025fd45d84bc9803c75bbfe63dce79df6e34d6c7;hp=043c07c6fd2085d7b199470da796318e19ee850b;hb=5b6002ffa927ae9987d978126fa7cc30067ac1f2;hpb=0e96bbf9ee0fbebd5fe3fba4d186c0e0d73c9a32 diff --git a/httpinput.cpp b/httpinput.cpp index 043c07c..025fd45 100644 --- a/httpinput.cpp +++ b/httpinput.cpp @@ -222,31 +222,14 @@ bool HTTPInput::parse_response(const std::string &request) return false; } - multimap parameters; - for (size_t i = 1; i < lines.size(); ++i) { - size_t split = lines[i].find(":"); - if (split == string::npos) { - log(WARNING, "[%s] Ignoring malformed HTTP response line '%s'", - url.c_str(), lines[i].c_str()); - continue; - } - - string key(lines[i].begin(), lines[i].begin() + split); - - // Skip any spaces after the colon. - do { - ++split; - } while (split < lines[i].size() && lines[i][split] == ' '); + multimap parameters = extract_headers(lines, url); - string value(lines[i].begin() + split, lines[i].end()); - - // Remove “Content-encoding: metacube”. - // TODO: Make case-insensitive. - if (key == "Content-encoding" && value == "metacube") { - continue; - } - - parameters.insert(make_pair(key, value)); + // Remove “Content-encoding: metacube”. + // TODO: Make case-insensitive. + multimap::iterator encoding_it = + parameters.find("Content-encoding"); + if (encoding_it != parameters.end() && encoding_it->second == "metacube") { + parameters.erase(encoding_it); } // Change “Server: foo” to “Server: metacube/0.1 (reflecting: foo)”