diff --git a/lib/base/tlsstream.cpp b/lib/base/tlsstream.cpp index 93a7501a5..c4074eaa0 100644 --- a/lib/base/tlsstream.cpp +++ b/lib/base/tlsstream.cpp @@ -268,9 +268,12 @@ void TlsStream::Handshake(void) m_CurrentAction = TlsActionHandshake; ChangeEvents(POLLOUT); - while (!m_HandshakeOK && !m_ErrorOccurred) + while (!m_HandshakeOK && !m_ErrorOccurred && !m_Eof) m_CV.wait(lock); + if (m_Eof) + BOOST_THROW_EXCEPTION(std::runtime_error("Socket was closed during TLS handshake.")); + HandleError(); }