index 4af2de13715ff1f59189ef0e9e4cab90e408b253..bf56656d05ca3e93c961a76c32501d335ffcbfb2 100644 (file)
--- a/src/tools/sysdbd/main.c
+++ b/src/tools/sysdbd/main.c
int status = 0;
- while (42) {
+ while (status == 0) {
size_t i;
plugin_main_loop.do_loop = 1;
}
/* break on error */
- if (i < listen_addresses_num) {
- status = 1;
+ if (status)
break;
- }
sdb_log(SDB_LOG_INFO, "SysDB daemon "SDB_VERSION_STRING
- SDB_VERSION_EXTRA " (pid %i) initialized successfully",
+ SDB_VERSION_EXTRA " (libsysdb %s%s, pid %i) initialized "
+ "successfully", sdb_version_string(), sdb_version_extra(),
(int)getpid());
sdb_connection_enable_logging();
}
}
+ /* clean up in case we exited the loop on error */
+ plugin_main_loop.do_loop = 0;
+ frontend_main_loop.do_loop = 0;
+ pthread_kill(backend_thread, SIGINT);
+ pthread_join(backend_thread, NULL);
+
sdb_fe_sock_destroy(sock);
return status;
} /* main_loop */
int
main(int argc, char **argv)
{
- _Bool do_daemonize = 1;
+ bool do_daemonize = 1;
struct sigaction sa_intterm;
struct sigaction sa_hup;