Index: net/http/proxy_client_socket.cc |
diff --git a/net/http/proxy_client_socket.cc b/net/http/proxy_client_socket.cc |
index 3c539c6895e295a98f9645070e4258bbf78b5d73..3c0d12d5cb2ada770a0e8114c867a44c1fe059fd 100644 |
--- a/net/http/proxy_client_socket.cc |
+++ b/net/http/proxy_client_socket.cc |
@@ -95,9 +95,19 @@ bool ProxyClientSocket::SanitizeProxyAuth(HttpResponseInfo* response) { |
scoped_refptr<HttpResponseHeaders> new_headers = new HttpResponseHeaders( |
HttpUtil::AssembleRawHeaders(kHeaders, arraysize(kHeaders))); |
+ // Copy status line and all hop-by-hop headers to preserve keep-alive |
+ // behavior. |
wtc
2015/03/06 02:22:40
The comment for ProxyClientSocket::SanitizeProxyAu
|
new_headers->ReplaceStatusLine(old_headers->GetStatusLine()); |
- CopyHeaderValues(old_headers, new_headers, "Connection"); |
- CopyHeaderValues(old_headers, new_headers, "Proxy-Authenticate"); |
+ CopyHeaderValues(old_headers, new_headers, "connection"); |
+ CopyHeaderValues(old_headers, new_headers, "proxy-connection"); |
+ CopyHeaderValues(old_headers, new_headers, "keep-alive"); |
+ CopyHeaderValues(old_headers, new_headers, "trailer"); |
+ CopyHeaderValues(old_headers, new_headers, "transfer-encoding"); |
+ CopyHeaderValues(old_headers, new_headers, "upgrade"); |
+ |
+ CopyHeaderValues(old_headers, new_headers, "content-length"); |
+ |
+ CopyHeaderValues(old_headers, new_headers, "proxy-authenticate"); |
wtc
2015/03/06 02:22:40
This list of headers looks very ad hoc to me. I'm
|
response->headers = new_headers; |
return true; |