]> granicus.if.org Git - icinga2/commitdiff
Fix another problem where Icinga doesn't detect that a cluster connection is dead
authorGunnar Beutner <gunnar@beutner.name>
Wed, 25 Feb 2015 12:21:38 +0000 (13:21 +0100)
committerGunnar Beutner <gunnar@beutner.name>
Wed, 25 Feb 2015 12:21:38 +0000 (13:21 +0100)
refs #8485

lib/base/tlsstream.cpp
lib/base/tlsstream.hpp

index 829da6f08381b2fcd16f794dab5b42f685de79d9..9ff8fbd4388e8119aefd41f8c96060103f469ead 100644 (file)
@@ -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
index 10c4c58bd9ab6b12082f3a946cb97ae6fcf72a6a..80be2d9174958f61eb77da20860d83ec62772b31 100644 (file)
@@ -35,8 +35,7 @@ enum TlsAction
        TlsActionNone,
        TlsActionRead,
        TlsActionWrite,
-       TlsActionHandshake,
-       TlsActionClose
+       TlsActionHandshake
 };
 
 /**