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

Side by Side Diff: net/quic/quic_stream_factory.cc

Issue 560913002: Fix a bug when a QUIC session is closed during the call to InitializeSession. This seems to be able… (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: fixes Created 6 years, 3 months 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
« no previous file with comments | « no previous file | tools/metrics/histograms/histograms.xml » ('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) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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/quic/quic_stream_factory.h" 5 #include "net/quic/quic_stream_factory.h"
6 6
7 #include <set> 7 #include <set>
8 8
9 #include "base/cpu.h" 9 #include "base/cpu.h"
10 #include "base/message_loop/message_loop.h" 10 #include "base/message_loop/message_loop.h"
(...skipping 870 matching lines...) Expand 10 before | Expand all | Expand 10 after
881 if (stats != NULL) { 881 if (stats != NULL) {
882 config.SetInitialRoundTripTimeUsToSend(stats->srtt.InMicroseconds()); 882 config.SetInitialRoundTripTimeUsToSend(stats->srtt.InMicroseconds());
883 } 883 }
884 } 884 }
885 885
886 *session = new QuicClientSession( 886 *session = new QuicClientSession(
887 connection, socket.Pass(), this, transport_security_state_, 887 connection, socket.Pass(), this, transport_security_state_,
888 server_info.Pass(), config, 888 server_info.Pass(), config,
889 base::MessageLoop::current()->message_loop_proxy().get(), 889 base::MessageLoop::current()->message_loop_proxy().get(),
890 net_log.net_log()); 890 net_log.net_log());
891 all_sessions_[*session] = server_id; // owning pointer
891 (*session)->InitializeSession(server_id, &crypto_config_, 892 (*session)->InitializeSession(server_id, &crypto_config_,
892 quic_crypto_client_stream_factory_); 893 quic_crypto_client_stream_factory_);
893 all_sessions_[*session] = server_id; // owning pointer 894 bool closed_during_initialize = !ContainsKey(all_sessions_, *session);
895 UMA_HISTOGRAM_BOOLEAN("Net.QuicSession.ClosedDuringInitializeSession",
896 closed_during_initialize);
897 if (closed_during_initialize) {
898 DLOG(DFATAL) << "Session closed during initialize";
899 *session = NULL;
900 return ERR_CONNECTION_CLOSED;
901 }
894 return OK; 902 return OK;
895 } 903 }
896 904
897 bool QuicStreamFactory::HasActiveJob(const QuicServerId& key) const { 905 bool QuicStreamFactory::HasActiveJob(const QuicServerId& key) const {
898 return ContainsKey(active_jobs_, key); 906 return ContainsKey(active_jobs_, key);
899 } 907 }
900 908
901 void QuicStreamFactory::ActivateSession( 909 void QuicStreamFactory::ActivateSession(
902 const QuicServerId& server_id, 910 const QuicServerId& server_id,
903 QuicClientSession* session) { 911 QuicClientSession* session) {
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after
984 http_server_properties_->ClearAlternateProtocol(server); 992 http_server_properties_->ClearAlternateProtocol(server);
985 http_server_properties_->SetAlternateProtocol( 993 http_server_properties_->SetAlternateProtocol(
986 server, alternate.port, alternate.protocol, 1); 994 server, alternate.port, alternate.protocol, 1);
987 DCHECK_EQ(QUIC, 995 DCHECK_EQ(QUIC,
988 http_server_properties_->GetAlternateProtocol(server).protocol); 996 http_server_properties_->GetAlternateProtocol(server).protocol);
989 DCHECK(http_server_properties_->WasAlternateProtocolRecentlyBroken( 997 DCHECK(http_server_properties_->WasAlternateProtocolRecentlyBroken(
990 server)); 998 server));
991 } 999 }
992 1000
993 } // namespace net 1001 } // namespace net
OLDNEW
« no previous file with comments | « no previous file | tools/metrics/histograms/histograms.xml » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698