| 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.
|
| 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");
|
|
|
| response->headers = new_headers;
|
| return true;
|
|
|