Chromium Code Reviews| 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; |