Chromium Code Reviews| Index: net/spdy/spdy_proxy_client_socket.cc |
| diff --git a/net/spdy/spdy_proxy_client_socket.cc b/net/spdy/spdy_proxy_client_socket.cc |
| index afc19534c0526570bdfdcc4b76a8177d45ae589d..661cfd99a7be6a60fe18edb209d21d33a21160ee 100644 |
| --- a/net/spdy/spdy_proxy_client_socket.cc |
| +++ b/net/spdy/spdy_proxy_client_socket.cc |
| @@ -414,20 +414,24 @@ int SpdyProxyClientSocket::DoReadReplyComplete(int result) { |
| case 302: // Found / Moved Temporarily |
| // Try to return a sanitized response so we can follow auth redirects. |
| // If we can't, fail the tunnel connection. |
| - if (SanitizeProxyRedirect(&response_, request_.url)) { |
| - redirect_has_load_timing_info_ = |
| - spdy_stream_->GetLoadTimingInfo(&redirect_load_timing_info_); |
| - // Note that this triggers a RST_STREAM_CANCEL. |
| - spdy_stream_->DetachDelegate(); |
| - next_state_ = STATE_DISCONNECTED; |
| - return ERR_HTTPS_PROXY_TUNNEL_RESPONSE; |
| - } else { |
| + if (!SanitizeProxyRedirect(&response_)) { |
| LogBlockedTunnelResponse(); |
| return ERR_TUNNEL_CONNECTION_FAILED; |
|
Ryan Hamilton
2014/12/08 22:51:59
Early return for the win!
|
| } |
| + redirect_has_load_timing_info_ = |
| + spdy_stream_->GetLoadTimingInfo(&redirect_load_timing_info_); |
| + // Note that this triggers a RST_STREAM_CANCEL. |
| + spdy_stream_->DetachDelegate(); |
| + next_state_ = STATE_DISCONNECTED; |
| + return ERR_HTTPS_PROXY_TUNNEL_RESPONSE; |
| + |
| case 407: // Proxy Authentication Required |
| next_state_ = STATE_OPEN; |
| + if (!SanitizeProxyAuth(&response_)) { |
| + LogBlockedTunnelResponse(); |
| + return ERR_TUNNEL_CONNECTION_FAILED; |
| + } |
| return HandleProxyAuthChallenge(auth_.get(), &response_, net_log_); |
| default: |