ListenerService* listener = conf.getServiceProvider()->getListenerService();\r
if (!listener->init(unlink_socket)) {\r
fprintf(stderr, "listener failed to initialize\n");\r
+ conf.term();\r
return -3;\r
}\r
else if (!listener->run(&shibd_shutdown)) {\r
- listener->term();\r
fprintf(stderr, "listener failed to begin service\n");\r
+ listener->term();\r
+ conf.term();\r
return -3;\r
}\r
listener->term();\r
ListenerService* listener = conf.getServiceProvider()->getListenerService();\r
if (!listener->init(unlink_socket)) {\r
fprintf(stderr, "listener failed to initialize\n");\r
+ conf.term();\r
return -3;\r
}\r
\r
\r
// Run the listener.\r
if (!listener->run(&shibd_shutdown)) {\r
- listener->term();\r
fprintf(stderr, "listener failed to begin service\n");\r
+ listener->term();\r
+ conf.term();\r
+ if (pidfile)\r
+ unlink(pidfile);\r
return -3;\r
}\r
listener->term();\r