| OLD | NEW |
| 1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2009 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 // TODO(ukai): code is similar with http_network_transaction.cc. We should | 5 // TODO(ukai): code is similar with http_network_transaction.cc. We should |
| 6 // think about ways to share code, if possible. | 6 // think about ways to share code, if possible. |
| 7 | 7 |
| 8 #include "net/socket_stream/socket_stream.h" | 8 #include "net/socket_stream/socket_stream.h" |
| 9 | 9 |
| 10 #include <string> | 10 #include <string> |
| (...skipping 401 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 412 else | 412 else |
| 413 next_state_ = STATE_CLOSE; | 413 next_state_ = STATE_CLOSE; |
| 414 // TODO(ukai): if error occured, reconsider proxy after error. | 414 // TODO(ukai): if error occured, reconsider proxy after error. |
| 415 return result; | 415 return result; |
| 416 } | 416 } |
| 417 | 417 |
| 418 int SocketStream::DoTcpConnect() { | 418 int SocketStream::DoTcpConnect() { |
| 419 next_state_ = STATE_TCP_CONNECT_COMPLETE; | 419 next_state_ = STATE_TCP_CONNECT_COMPLETE; |
| 420 DCHECK(factory_); | 420 DCHECK(factory_); |
| 421 socket_.reset(factory_->CreateTCPClientSocket(addresses_)); | 421 socket_.reset(factory_->CreateTCPClientSocket(addresses_)); |
| 422 return socket_->Connect(&io_callback_); | 422 // TODO(willchan): Plumb LoadLog into SocketStream. |
| 423 return socket_->Connect(&io_callback_, NULL); |
| 423 } | 424 } |
| 424 | 425 |
| 425 int SocketStream::DoTcpConnectComplete(int result) { | 426 int SocketStream::DoTcpConnectComplete(int result) { |
| 426 // TODO(ukai): if error occured, reconsider proxy after error. | 427 // TODO(ukai): if error occured, reconsider proxy after error. |
| 427 if (result != OK) { | 428 if (result != OK) { |
| 428 next_state_ = STATE_CLOSE; | 429 next_state_ = STATE_CLOSE; |
| 429 return result; | 430 return result; |
| 430 } | 431 } |
| 431 | 432 |
| 432 if (proxy_mode_ == kTunnelProxy) | 433 if (proxy_mode_ == kTunnelProxy) |
| (...skipping 186 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 619 | 620 |
| 620 ClientSocket* s = socket_.release(); | 621 ClientSocket* s = socket_.release(); |
| 621 HostResolver::RequestInfo req_info(url_.HostNoBrackets(), | 622 HostResolver::RequestInfo req_info(url_.HostNoBrackets(), |
| 622 url_.EffectiveIntPort()); | 623 url_.EffectiveIntPort()); |
| 623 | 624 |
| 624 if (proxy_info_.proxy_server().scheme() == ProxyServer::SCHEME_SOCKS5) | 625 if (proxy_info_.proxy_server().scheme() == ProxyServer::SCHEME_SOCKS5) |
| 625 s = new SOCKS5ClientSocket(s, req_info, host_resolver_.get()); | 626 s = new SOCKS5ClientSocket(s, req_info, host_resolver_.get()); |
| 626 else | 627 else |
| 627 s = new SOCKSClientSocket(s, req_info, host_resolver_.get()); | 628 s = new SOCKSClientSocket(s, req_info, host_resolver_.get()); |
| 628 socket_.reset(s); | 629 socket_.reset(s); |
| 629 return socket_->Connect(&io_callback_); | 630 // TODO(willchan): Plumb LoadLog into SocketStream. |
| 631 return socket_->Connect(&io_callback_, NULL); |
| 630 } | 632 } |
| 631 | 633 |
| 632 int SocketStream::DoSOCKSConnectComplete(int result) { | 634 int SocketStream::DoSOCKSConnectComplete(int result) { |
| 633 DCHECK_EQ(kSOCKSProxy, proxy_mode_); | 635 DCHECK_EQ(kSOCKSProxy, proxy_mode_); |
| 634 | 636 |
| 635 if (result == OK) { | 637 if (result == OK) { |
| 636 if (is_secure()) | 638 if (is_secure()) |
| 637 next_state_ = STATE_SSL_CONNECT; | 639 next_state_ = STATE_SSL_CONNECT; |
| 638 else | 640 else |
| 639 DidEstablishConnection(); | 641 DidEstablishConnection(); |
| 640 } | 642 } |
| 641 return result; | 643 return result; |
| 642 } | 644 } |
| 643 | 645 |
| 644 int SocketStream::DoSSLConnect() { | 646 int SocketStream::DoSSLConnect() { |
| 645 DCHECK(factory_); | 647 DCHECK(factory_); |
| 646 socket_.reset(factory_->CreateSSLClientSocket( | 648 socket_.reset(factory_->CreateSSLClientSocket( |
| 647 socket_.release(), url_.HostNoBrackets(), ssl_config_)); | 649 socket_.release(), url_.HostNoBrackets(), ssl_config_)); |
| 648 next_state_ = STATE_SSL_CONNECT_COMPLETE; | 650 next_state_ = STATE_SSL_CONNECT_COMPLETE; |
| 649 return socket_->Connect(&io_callback_); | 651 // TODO(willchan): Plumb LoadLog into SocketStream. |
| 652 return socket_->Connect(&io_callback_, NULL); |
| 650 } | 653 } |
| 651 | 654 |
| 652 int SocketStream::DoSSLConnectComplete(int result) { | 655 int SocketStream::DoSSLConnectComplete(int result) { |
| 653 if (IsCertificateError(result)) | 656 if (IsCertificateError(result)) |
| 654 result = HandleCertificateError(result); | 657 result = HandleCertificateError(result); |
| 655 | 658 |
| 656 if (result == OK) | 659 if (result == OK) |
| 657 result = DidEstablishConnection(); | 660 result = DidEstablishConnection(); |
| 658 else | 661 else |
| 659 next_state_ = STATE_CLOSE; | 662 next_state_ = STATE_CLOSE; |
| (...skipping 146 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 806 | 809 |
| 807 SSLConfigService* SocketStream::ssl_config_service() const { | 810 SSLConfigService* SocketStream::ssl_config_service() const { |
| 808 return context_->ssl_config_service(); | 811 return context_->ssl_config_service(); |
| 809 } | 812 } |
| 810 | 813 |
| 811 ProxyService* SocketStream::proxy_service() const { | 814 ProxyService* SocketStream::proxy_service() const { |
| 812 return context_->proxy_service(); | 815 return context_->proxy_service(); |
| 813 } | 816 } |
| 814 | 817 |
| 815 } // namespace net | 818 } // namespace net |
| OLD | NEW |