diff options
Diffstat (limited to 'net/http/http_util.cc')
-rw-r--r-- | net/http/http_util.cc | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/net/http/http_util.cc b/net/http/http_util.cc index 7094b03..500222a 100644 --- a/net/http/http_util.cc +++ b/net/http/http_util.cc @@ -218,6 +218,31 @@ bool HttpUtil::HasHeader(const std::string& headers, const char* name) { } // static +std::string HttpUtil::StripHeaders(const std::string& headers, + const char* const headers_to_remove[], + size_t headers_to_remove_len) { + std::string stripped_headers; + net::HttpUtil::HeadersIterator it(headers.begin(), headers.end(), "\r\n"); + + while (it.GetNext()) { + bool should_remove = false; + for (size_t i = 0; i < headers_to_remove_len; ++i) { + if (LowerCaseEqualsASCII(it.name_begin(), it.name_end(), + headers_to_remove[i])) { + should_remove = true; + break; + } + } + if (!should_remove) { + // Assume that name and values are on the same line. + stripped_headers.append(it.name_begin(), it.values_end()); + stripped_headers.append("\r\n"); + } + } + return stripped_headers; +} + +// static bool HttpUtil::IsNonCoalescingHeader(string::const_iterator name_begin, string::const_iterator name_end) { // NOTE: "set-cookie2" headers do not support expires attributes, so we don't |