Prevent from server termination after SIGPIPE 09/38609/4
authorMateusz Malicki <m.malicki2@samsung.com>
Wed, 22 Apr 2015 16:29:57 +0000 (18:29 +0200)
committerJan Olszak <j.olszak@samsung.com>
Thu, 23 Apr 2015 10:54:43 +0000 (03:54 -0700)
[Bug]           Server killed after unexpected ipc client disconnect
[Cause]         Writing to a disconnected socket causes the SIGPIPE
[Solution]      Block signal
[Verification]  N/A

Change-Id: I27d50be0279c87894acff74627b6385dff72b762

server/server.cpp

index 2271f08..f64ea03 100644 (file)
@@ -33,6 +33,7 @@
 #include "utils/glib-loop.hpp"
 #include "utils/environment.hpp"
 #include "utils/fs.hpp"
+#include "utils/signal.hpp"
 
 #include <csignal>
 #include <cerrno>
@@ -101,6 +102,7 @@ void Server::run(bool asRoot)
     signal(SIGINT,  signalHandler);
     signal(SIGTERM, signalHandler);
     signal(SIGUSR1, signalHandler);
+    utils::signalBlock(SIGPIPE);
 
     LOGI("Starting daemon...");
     {