registerSocketService<service>(manager, #service)
template<typename T>
-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());
}
if (service)
delete service;
+ return false;
}
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) {