]> granicus.if.org Git - icinga2/commitdiff
Improve error handling for TlsStream::Handshake
authorGunnar Beutner <gunnar.beutner@netways.de>
Wed, 11 May 2016 08:09:54 +0000 (10:09 +0200)
committerGunnar Beutner <gunnar.beutner@netways.de>
Thu, 12 May 2016 09:11:02 +0000 (11:11 +0200)
fixes #11046

lib/base/tlsstream.cpp

index 93a7501a5f176047d7a8ed0c0facb25471e016af..c4074eaa0d32c1e8c48e4ddca7ebd9ce98b1e8da 100644 (file)
@@ -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();
 }