From 5857e88e53ecdff8d1e0f2345bf489f9661d2a29 Mon Sep 17 00:00:00 2001 From: Sebastian Harl Date: Sun, 27 Apr 2014 17:16:19 +0200 Subject: [PATCH] sysdbd: Return with status=1 in case of an initialization or config error. --- src/tools/sysdbd/main.c | 29 ++++++++++++++++++----------- 1 file changed, 18 insertions(+), 11 deletions(-) diff --git a/src/tools/sysdbd/main.c b/src/tools/sysdbd/main.c index 144128c..4af2de1 100644 --- a/src/tools/sysdbd/main.c +++ b/src/tools/sysdbd/main.c @@ -232,9 +232,10 @@ static int main_loop(void) { sdb_fe_socket_t *sock = sdb_fe_sock_create(); - pthread_t backend_thread; + int status = 0; + while (42) { size_t i; @@ -252,20 +253,25 @@ main_loop(void) break; } - for (i = 0; i < listen_addresses_num; ++i) - if (sdb_fe_sock_add_listener(sock, listen_addresses[i])) + for (i = 0; i < listen_addresses_num; ++i) { + if (sdb_fe_sock_add_listener(sock, listen_addresses[i])) { + status = 1; break; + } + } /* break on error */ - if (i >= listen_addresses_num) { - sdb_log(SDB_LOG_INFO, "SysDB daemon "SDB_VERSION_STRING - SDB_VERSION_EXTRA " (pid %i) initialized successfully", - (int)getpid()); + if (i < listen_addresses_num) { + status = 1; + break; + } - sdb_connection_enable_logging(); + sdb_log(SDB_LOG_INFO, "SysDB daemon "SDB_VERSION_STRING + SDB_VERSION_EXTRA " (pid %i) initialized successfully", + (int)getpid()); - sdb_fe_sock_listen_and_serve(sock, &frontend_main_loop); - } + sdb_connection_enable_logging(); + sdb_fe_sock_listen_and_serve(sock, &frontend_main_loop); sdb_log(SDB_LOG_INFO, "Waiting for backend thread to terminate"); plugin_main_loop.do_loop = 0; @@ -281,12 +287,13 @@ main_loop(void) sdb_fe_sock_clear_listeners(sock); if (do_reconfigure()) { sdb_log(SDB_LOG_ERR, "Reconfiguration failed"); + status = 1; break; } } sdb_fe_sock_destroy(sock); - return 0; + return status; } /* main_loop */ int -- 2.30.2