| Index: net/quic/quic_stream_factory.cc
|
| diff --git a/net/quic/quic_stream_factory.cc b/net/quic/quic_stream_factory.cc
|
| index dd327df00c8ca72557a50e7b9df7224e2fb5e213..6f71095fe9556a900a2ee9c6f85a2cbb5903b317 100644
|
| --- a/net/quic/quic_stream_factory.cc
|
| +++ b/net/quic/quic_stream_factory.cc
|
| @@ -380,6 +380,10 @@ int QuicStreamFactory::Job::DoConnect() {
|
| return rv;
|
| }
|
|
|
| + if (!session_->connection()->connected()) {
|
| + return ERR_CONNECTION_CLOSED;
|
| + }
|
| +
|
| session_->StartReading();
|
| if (!session_->connection()->connected()) {
|
| return ERR_QUIC_PROTOCOL_ERROR;
|
| @@ -896,7 +900,9 @@ int QuicStreamFactory::CreateSession(
|
| all_sessions_[*session] = server_id; // owning pointer
|
| (*session)->InitializeSession(server_id, &crypto_config_,
|
| quic_crypto_client_stream_factory_);
|
| - bool closed_during_initialize = !ContainsKey(all_sessions_, *session);
|
| + bool closed_during_initialize =
|
| + !ContainsKey(all_sessions_, *session) ||
|
| + !(*session)->connection()->connected();
|
| UMA_HISTOGRAM_BOOLEAN("Net.QuicSession.ClosedDuringInitializeSession",
|
| closed_during_initialize);
|
| if (closed_during_initialize) {
|
|
|