]> granicus.if.org Git - icinga2/commitdiff
Fix crash during cluster log replay
authorGunnar Beutner <gunnar@beutner.name>
Tue, 11 Aug 2015 10:08:54 +0000 (12:08 +0200)
committerGunnar Beutner <gunnar@beutner.name>
Tue, 11 Aug 2015 10:09:17 +0000 (12:09 +0200)
fixes #9876

lib/remote/apilistener.cpp
lib/remote/apilistener.hpp

index 84b89ad7f35542a1e27bc836016389aa0d8ca9d5..13d32abb6a8fd53b4efd5caddf12dd5f3491df59 100644 (file)
@@ -262,12 +262,22 @@ void ApiListener::AddConnection(const Endpoint::Ptr& endpoint)
        }
 }
 
+void ApiListener::NewClientHandler(const Socket::Ptr& client, const String& hostname, ConnectionRole role)
+{
+       try {
+               NewClientHandler(client, hostname, role);
+       } catch (const std::exception& ex) {
+               Log(LogCritical, "ApiListener")
+                   << "Exception while handling new API client connection: " << DiagnosticInformation(ex);
+       }
+}
+
 /**
  * Processes a new client connection.
  *
  * @param client The new client.
  */
-void ApiListener::NewClientHandler(const Socket::Ptr& client, const String& hostname, ConnectionRole role)
+void ApiListener::NewClientHandlerInternal(const Socket::Ptr& client, const String& hostname, ConnectionRole role)
 {
        CONTEXT("Handling new API client connection");
 
index c7fccb38bfdfc21ee0b905d8f9843c535bf81219..9842b5a3849f351da0b6b01d21f397181a4db94b 100644 (file)
@@ -93,6 +93,7 @@ private:
        void AddConnection(const Endpoint::Ptr& endpoint);
 
        void NewClientHandler(const Socket::Ptr& client, const String& hostname, ConnectionRole role);
+       void NewClientHandlerInternal(const Socket::Ptr& client, const String& hostname, ConnectionRole role);
        void ListenerThreadProc(const Socket::Ptr& server);
 
        WorkQueue m_RelayQueue;