OLD | NEW |
---|---|
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2010 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/http/http_stream_request.h" | 5 #include "net/http/http_stream_request.h" |
6 | 6 |
7 #include "base/stl_util-inl.h" | 7 #include "base/stl_util-inl.h" |
8 #include "base/string_number_conversions.h" | 8 #include "base/string_number_conversions.h" |
9 #include "base/string_util.h" | 9 #include "base/string_util.h" |
10 #include "net/base/connection_type_histograms.h" | 10 #include "net/base/connection_type_histograms.h" |
(...skipping 405 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
416 bool want_spdy_over_npn = | 416 bool want_spdy_over_npn = |
417 alternate_protocol_mode_ == kUsingAlternateProtocol && | 417 alternate_protocol_mode_ == kUsingAlternateProtocol && |
418 alternate_protocol_ == HttpAlternateProtocols::NPN_SPDY_2; | 418 alternate_protocol_ == HttpAlternateProtocols::NPN_SPDY_2; |
419 using_ssl_ = request_info().url.SchemeIs("https") || | 419 using_ssl_ = request_info().url.SchemeIs("https") || |
420 (force_spdy_always_ && force_spdy_over_ssl_) || | 420 (force_spdy_always_ && force_spdy_over_ssl_) || |
421 want_spdy_over_npn; | 421 want_spdy_over_npn; |
422 using_spdy_ = false; | 422 using_spdy_ = false; |
423 | 423 |
424 // Check first if we have a spdy session for this group. If so, then go | 424 // Check first if we have a spdy session for this group. If so, then go |
425 // straight to using that. | 425 // straight to using that. |
426 HostPortProxyPair pair(endpoint_, proxy_info()->ToPacString()); | 426 HostPortProxyPair pair(endpoint_, proxy_info()->proxy_server().ToPacString()); |
Mike Belshe
2010/08/24 15:19:58
Because HostPortProxyPair takes a string, this bug
eroman
2010/08/25 01:34:57
Indeed, that is a very good idea.
I will do a fol
| |
427 if (session_->spdy_session_pool()->HasSession(pair)) { | 427 if (session_->spdy_session_pool()->HasSession(pair)) { |
428 using_spdy_ = true; | 428 using_spdy_ = true; |
429 next_state_ = STATE_INIT_STREAM; | 429 next_state_ = STATE_INIT_STREAM; |
430 return OK; | 430 return OK; |
431 } | 431 } |
432 | 432 |
433 // Build the string used to uniquely identify connections of this type. | 433 // Build the string used to uniquely identify connections of this type. |
434 // Determine the host and port to connect to. | 434 // Determine the host and port to connect to. |
435 std::string connection_group = endpoint_.ToString(); | 435 std::string connection_group = endpoint_.ToString(); |
436 DCHECK(!connection_group.empty()); | 436 DCHECK(!connection_group.empty()); |
(...skipping 243 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
680 stream_.reset(new HttpStreamHandle(connection_.release(), stream)); | 680 stream_.reset(new HttpStreamHandle(connection_.release(), stream)); |
681 return stream_->InitializeStream(&request_info(), net_log_, &io_callback_); | 681 return stream_->InitializeStream(&request_info(), net_log_, &io_callback_); |
682 } | 682 } |
683 | 683 |
684 CHECK(!stream_.get()); | 684 CHECK(!stream_.get()); |
685 | 685 |
686 const scoped_refptr<SpdySessionPool> spdy_pool = | 686 const scoped_refptr<SpdySessionPool> spdy_pool = |
687 session_->spdy_session_pool(); | 687 session_->spdy_session_pool(); |
688 scoped_refptr<SpdySession> spdy_session; | 688 scoped_refptr<SpdySession> spdy_session; |
689 | 689 |
690 HostPortProxyPair pair(endpoint_, proxy_info()->ToPacString()); | 690 HostPortProxyPair pair(endpoint_, |
691 proxy_info()->proxy_server().ToPacString()); | |
691 if (session_->spdy_session_pool()->HasSession(pair)) { | 692 if (session_->spdy_session_pool()->HasSession(pair)) { |
692 spdy_session = | 693 spdy_session = |
693 session_->spdy_session_pool()->Get(pair, session_, net_log_); | 694 session_->spdy_session_pool()->Get(pair, session_, net_log_); |
694 } else { | 695 } else { |
695 // SPDY can be negotiated using the TLS next protocol negotiation (NPN) | 696 // SPDY can be negotiated using the TLS next protocol negotiation (NPN) |
696 // extension, or just directly using SSL. Either way, |connection_| must | 697 // extension, or just directly using SSL. Either way, |connection_| must |
697 // contain an SSLClientSocket. | 698 // contain an SSLClientSocket. |
698 CHECK(connection_->socket()); | 699 CHECK(connection_->socket()); |
699 int error = spdy_pool->GetSpdySessionFromSocket( | 700 int error = spdy_pool->GetSpdySessionFromSocket( |
700 pair, session_, connection_.release(), net_log_, | 701 pair, session_, connection_.release(), net_log_, |
(...skipping 211 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
912 100); | 913 100); |
913 break; | 914 break; |
914 default: | 915 default: |
915 NOTREACHED(); | 916 NOTREACHED(); |
916 break; | 917 break; |
917 } | 918 } |
918 } | 919 } |
919 | 920 |
920 } // namespace net | 921 } // namespace net |
921 | 922 |
OLD | NEW |