Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(339)

Side by Side Diff: net/spdy/spdy_proxy_client_socket.cc

Issue 8912010: Revert 110965 - Allow chrome to handle 407 auth challenges to CONNECT requests (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 9 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « net/spdy/spdy_proxy_client_socket.h ('k') | net/spdy/spdy_proxy_client_socket_unittest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "net/spdy/spdy_proxy_client_socket.h" 5 #include "net/spdy/spdy_proxy_client_socket.h"
6 6
7 #include <algorithm> // min 7 #include <algorithm> // min
8 8
9 #include "base/logging.h" 9 #include "base/logging.h"
10 #include "base/string_util.h" 10 #include "base/string_util.h"
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
54 } 54 }
55 55
56 SpdyProxyClientSocket::~SpdyProxyClientSocket() { 56 SpdyProxyClientSocket::~SpdyProxyClientSocket() {
57 Disconnect(); 57 Disconnect();
58 } 58 }
59 59
60 const HttpResponseInfo* SpdyProxyClientSocket::GetConnectResponseInfo() const { 60 const HttpResponseInfo* SpdyProxyClientSocket::GetConnectResponseInfo() const {
61 return response_.headers ? &response_ : NULL; 61 return response_.headers ? &response_ : NULL;
62 } 62 }
63 63
64 int SpdyProxyClientSocket::RestartWithAuth(OldCompletionCallback* callback) {
65 // A SPDY Stream can only handle a single request, so the underlying
66 // stream may not be reused and a new SpdyProxyClientSocket must be
67 // created (possibly on top of the same SPDY Session).
68 next_state_ = STATE_DISCONNECTED;
69 return OK;
70 }
71
72 const
73 scoped_refptr<HttpAuthController>& SpdyProxyClientSocket::auth_controller() {
74 return auth_;
75 }
76
77 HttpStream* SpdyProxyClientSocket::CreateConnectResponseStream() { 64 HttpStream* SpdyProxyClientSocket::CreateConnectResponseStream() {
78 DCHECK(response_stream_.get()); 65 DCHECK(response_stream_.get());
79 return response_stream_.release(); 66 return response_stream_.release();
80 } 67 }
81 68
82 // Sends a SYN_STREAM frame to the proxy with a CONNECT request 69 // Sends a SYN_STREAM frame to the proxy with a CONNECT request
83 // for the specified endpoint. Waits for the server to send back 70 // for the specified endpoint. Waits for the server to send back
84 // a SYN_REPLY frame. OK will be returned if the status is 200. 71 // a SYN_REPLY frame. OK will be returned if the status is 200.
85 // ERR_TUNNEL_CONNECTION_FAILED will be returned for any other status. 72 // ERR_TUNNEL_CONNECTION_FAILED will be returned for any other status.
86 // In any of these cases, Read() may be called to retrieve the HTTP 73 // In any of these cases, Read() may be called to retrieve the HTTP
(...skipping 295 matching lines...) Expand 10 before | Expand all | Expand 10 after
382 next_state_ = STATE_OPEN; 369 next_state_ = STATE_OPEN;
383 if (net_log_.IsLoggingAllEvents()) { 370 if (net_log_.IsLoggingAllEvents()) {
384 net_log_.AddEvent( 371 net_log_.AddEvent(
385 NetLog::TYPE_HTTP_TRANSACTION_READ_TUNNEL_RESPONSE_HEADERS, 372 NetLog::TYPE_HTTP_TRANSACTION_READ_TUNNEL_RESPONSE_HEADERS,
386 make_scoped_refptr(new NetLogHttpResponseParameter(response_.headers))); 373 make_scoped_refptr(new NetLogHttpResponseParameter(response_.headers)));
387 } 374 }
388 375
389 if (response_.headers->response_code() == 200) { 376 if (response_.headers->response_code() == 200) {
390 return OK; 377 return OK;
391 } else if (response_.headers->response_code() == 407) { 378 } else if (response_.headers->response_code() == 407) {
392 int rv = HandleAuthChallenge(auth_, &response_, net_log_);
393 if (rv != ERR_PROXY_AUTH_REQUESTED) {
394 return rv;
395 }
396 // SPDY only supports basic and digest auth
397 if (auth_->auth_info() &&
398 (auth_->auth_info()->scheme == "basic" ||
399 auth_->auth_info()->scheme == "digest")) {
400 return ERR_PROXY_AUTH_REQUESTED;
401 }
402 return ERR_TUNNEL_CONNECTION_FAILED; 379 return ERR_TUNNEL_CONNECTION_FAILED;
403 } else { 380 } else {
404 // Immediately hand off our SpdyStream to a newly created SpdyHttpStream 381 // Immediately hand off our SpdyStream to a newly created SpdyHttpStream
405 // so that any subsequent SpdyFrames are processed in the context of 382 // so that any subsequent SpdyFrames are processed in the context of
406 // the HttpStream, not the socket. 383 // the HttpStream, not the socket.
407 DCHECK(spdy_stream_); 384 DCHECK(spdy_stream_);
408 SpdyStream* stream = spdy_stream_; 385 SpdyStream* stream = spdy_stream_;
409 spdy_stream_ = NULL; 386 spdy_stream_ = NULL;
410 response_stream_.reset(new SpdyHttpStream(NULL, false)); 387 response_stream_.reset(new SpdyHttpStream(NULL, false));
411 response_stream_->InitializeWithExistingStream(stream); 388 response_stream_->InitializeWithExistingStream(stream);
(...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after
527 } 504 }
528 // This may have been deleted by read_callback_, so check first. 505 // This may have been deleted by read_callback_, so check first.
529 if (weak_ptr && !write_callback.is_null()) 506 if (weak_ptr && !write_callback.is_null())
530 write_callback.Run(ERR_CONNECTION_CLOSED); 507 write_callback.Run(ERR_CONNECTION_CLOSED);
531 } 508 }
532 509
533 void SpdyProxyClientSocket::set_chunk_callback(ChunkCallback* /*callback*/) { 510 void SpdyProxyClientSocket::set_chunk_callback(ChunkCallback* /*callback*/) {
534 } 511 }
535 512
536 } // namespace net 513 } // namespace net
OLDNEW
« no previous file with comments | « net/spdy/spdy_proxy_client_socket.h ('k') | net/spdy/spdy_proxy_client_socket_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698