diff options
Diffstat (limited to 'net')
-rw-r--r-- | net/socket_stream/socket_stream.cc | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/net/socket_stream/socket_stream.cc b/net/socket_stream/socket_stream.cc index 6a5285c..7227fe9 100644 --- a/net/socket_stream/socket_stream.cc +++ b/net/socket_stream/socket_stream.cc @@ -112,7 +112,8 @@ void SocketStream::Connect() { "The current MessageLoop must exist"; DCHECK_EQ(MessageLoop::TYPE_IO, MessageLoop::current()->type()) << "The current MessageLoop must be TYPE_IO"; - ssl_config_service()->GetSSLConfig(&ssl_config_); + if (context_) + ssl_config_service()->GetSSLConfig(&ssl_config_); DCHECK_EQ(next_state_, STATE_NONE); AddRef(); // Released in Finish() @@ -327,6 +328,10 @@ void SocketStream::OnWriteCompleted(int result) { } void SocketStream::DoLoop(int result) { + // If context was not set, close immediately. + if (!context_) + next_state_ = STATE_CLOSE; + if (next_state_ == STATE_NONE) return; |