From: Rafal Krypa Date: Tue, 27 Jan 2015 11:06:44 +0000 (+0100) Subject: Terminate service if it cannot setup its sockets X-Git-Tag: submit/tizen_tv/20150216.113520~13 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=0fc7b95468c6c61389e406c0ae4cc73973768b4c;p=platform%2Fcore%2Fsecurity%2Fsecurity-manager.git Terminate service if it cannot setup its sockets Currently even if the server cannot listen on a socket it will continue running. There is no point in that, when no client will be able to connect. Change-Id: I74ad5a9fddee1072f7642c036a088805f53caa11 Signed-off-by: Rafal Krypa --- diff --git a/src/server/main/server-main.cpp b/src/server/main/server-main.cpp index 5c34d3f6..c9609e2a 100644 --- a/src/server/main/server-main.cpp +++ b/src/server/main/server-main.cpp @@ -39,14 +39,14 @@ IMPLEMENT_SAFE_SINGLETON(SecurityManager::Log::LogSystem); registerSocketService(manager, #service) template -void registerSocketService(SecurityManager::SocketManager &manager, const std::string& serviceName) +bool registerSocketService(SecurityManager::SocketManager &manager, const std::string& serviceName) { T *service = NULL; try { service = new T(); service->Create(); manager.RegisterSocketService(service); - service = NULL; + return true; } catch (const SecurityManager::Exception &exception) { LogError("Error in creating service " << serviceName << ", details:\n" << exception.DumpToString()); @@ -59,6 +59,7 @@ void registerSocketService(SecurityManager::SocketManager &manager, const std::s } if (service) delete service; + return false; } int main(void) { @@ -82,7 +83,10 @@ int main(void) { LogInfo("Start!"); SecurityManager::SocketManager manager; - REGISTER_SOCKET_SERVICE(manager, SecurityManager::Service); + if (!REGISTER_SOCKET_SERVICE(manager, SecurityManager::Service)) { + LogError("Unable to create socket service. Exiting."); + return EXIT_FAILURE; + } manager.MainLoop(); } catch (const SecurityManager::FileLocker::Exception::Base &e) {