From 4972364f4214e637a6bd74b9ae782770891dfaa7 Mon Sep 17 00:00:00 2001 From: Gunnar Beutner Date: Wed, 25 Feb 2015 13:21:38 +0100 Subject: [PATCH] Fix another problem where Icinga doesn't detect that a cluster connection is dead refs #8485 --- lib/base/tlsstream.cpp | 18 ++++-------------- lib/base/tlsstream.hpp | 3 +-- 2 files changed, 5 insertions(+), 16 deletions(-) diff --git a/lib/base/tlsstream.cpp b/lib/base/tlsstream.cpp index 829da6f08..9ff8fbd43 100644 --- a/lib/base/tlsstream.cpp +++ b/lib/base/tlsstream.cpp @@ -167,14 +167,6 @@ void TlsStream::OnEvent(int revents) m_CV.notify_all(); } - break; - case TlsActionClose: - (void) SSL_shutdown(m_SSL.get()); - rc = 1; - - m_CloseOK = true; - m_CV.notify_all(); - break; default: VERIFY(!"Invalid TlsAction"); @@ -290,13 +282,11 @@ void TlsStream::Write(const void *buffer, size_t count) void TlsStream::Close(void) { boost::mutex::scoped_lock lock(m_Mutex); - m_CurrentAction = TlsActionClose; - ChangeEvents(POLLOUT); - - while (!m_CloseOK && !m_ErrorOccurred) - m_CV.wait(lock); + (void) SSL_shutdown(m_SSL.get()); + m_Socket->Close(); - HandleError(); + m_CloseOK = true; + m_CV.notify_all(); } bool TlsStream::IsEof(void) const diff --git a/lib/base/tlsstream.hpp b/lib/base/tlsstream.hpp index 10c4c58bd..80be2d917 100644 --- a/lib/base/tlsstream.hpp +++ b/lib/base/tlsstream.hpp @@ -35,8 +35,7 @@ enum TlsAction TlsActionNone, TlsActionRead, TlsActionWrite, - TlsActionHandshake, - TlsActionClose + TlsActionHandshake }; /** -- 2.40.0