From: Thomas Jarosch Date: Wed, 6 Oct 2010 14:33:32 +0000 (+0200) Subject: Rename signal handler functions to what they really are: Handle signals X-Git-Tag: v1.1~79 X-Git-Url: http://developer.intra2net.com/git/?p=bpdyndnsd;a=commitdiff_plain;h=e4ebcadc1c0c48e242af6986aadad76ec7349dc9 Rename signal handler functions to what they really are: Handle signals --- diff --git a/src/main.cpp b/src/main.cpp index ea70d7a..715d06d 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -26,13 +26,12 @@ using namespace std; Updater::Ptr updater; -volatile bool need_config_reload = false; volatile bool exit_now = false; - -volatile bool caught_sig_term = false; +volatile bool caught_sig_hup = false; volatile bool caught_sig_usr1 = false; volatile bool caught_sig_usr2 = false; -volatile bool caught_sig_rtmin1 = false; +volatile bool caught_sig_rtmin = false; +volatile bool caught_sig_term = false; /** * Checks if a bpdyndnsd process is already running. @@ -137,52 +136,52 @@ int shutdown() /** - * Signal SIGTERM caught, releasing resources and exit. + * Signal SIGTERM caught (exit program) * @param param Parameter from the signal interface. */ -void terminate(int param) +void sigterm_func(int param) { caught_sig_term = true; } /*lint !e715 */ /** - * Signal SIGUSR1 caught, switching to offline mode. + * Signal SIGUSR1 caught (switch to offline mode) * @param param Parameter from the signal interface. */ -void switch_to_offline(int param) +void sigusr1_func(int param) { caught_sig_usr1 = true; } /*lint !e715 */ /** - * Signal SIGHUP caught, reloading config. + * Signal SIGHUP caught (reload config) * @param param Parameter from the signal interface. */ -void reload_config(int param) +void sighup_func(int param) { - need_config_reload = true; + caught_sig_hup = true; } /*lint !e715 */ /** - * Signal SIGUSR2 caught, switching to online mode. + * Signal SIGUSR2 caught (switch to online mode) * @param param Parameter from the signal interface. */ -void switch_to_online(int param) +void sigusr2_func(int param) { caught_sig_usr2 = true; } /*lint !e715 */ /** - * Signal SIGRTMIN caught, switching to online mode with webcheck enabled. + * Signal SIGRTMIN caught (switch to online mode with webcheck enabled) * @param param Parameter from the signal interface. */ -void switch_to_online_webcheck(int param) +void sigrtmin_func(int param) { - caught_sig_rtmin1 = true; + caught_sig_rtmin = true; } /*lint !e715 */ @@ -193,31 +192,31 @@ void switch_to_online_webcheck(int param) int init_signals() { sighandler_t ret_val; - ret_val = signal(SIGTERM,terminate); + ret_val = signal(SIGTERM, sigterm_func); if ( ret_val == SIG_ERR ) { updater->get_logger()->print_error_setting_signal("SIGTERM"); return -1; } - ret_val = signal(SIGUSR1,switch_to_offline); + ret_val = signal(SIGUSR1, sigusr1_func); if ( ret_val == SIG_ERR ) { updater->get_logger()->print_error_setting_signal("SIGUSR1"); return -1; } - ret_val = signal(SIGHUP,reload_config); + ret_val = signal(SIGHUP, sighup_func); if ( ret_val == SIG_ERR ) { updater->get_logger()->print_error_setting_signal("SIGHUP"); return -1; } - ret_val = signal(SIGUSR2,switch_to_online); + ret_val = signal(SIGUSR2, sigusr2_func); if ( ret_val == SIG_ERR ) { updater->get_logger()->print_error_setting_signal("SIGUSR2"); return -1; } - ret_val = signal(SIGRTMIN,switch_to_online_webcheck); + ret_val = signal(SIGRTMIN, sigrtmin_func); if ( ret_val == SIG_ERR ) { updater->get_logger()->print_error_setting_signal("SIGRTMIN"); @@ -331,9 +330,9 @@ int main(int argc, char *argv[]) // Go online is_online = true; webcheck_enabled = false; - } else if (caught_sig_rtmin1) + } else if (caught_sig_rtmin) { - caught_sig_rtmin1 = false; + caught_sig_rtmin = false; updater->get_logger()->print_caught_sigrtmin(); // Go online - with webcheck @@ -341,10 +340,20 @@ int main(int argc, char *argv[]) webcheck_enabled = true; } else if (caught_sig_term) { - caught_sig_term = true; + caught_sig_term = false; updater->get_logger()->print_caught_sigterm(); exit_now = true; + } else if (caught_sig_hup) + { + caught_sig_hup = false; + updater->get_logger()->print_caught_sighup(); + + if ( updater->reload_config() != 0 ) + { + updater->get_logger()->print_conf_reload_failed_exit(); + exit(-1); + } } // State handling @@ -363,18 +372,6 @@ int main(int argc, char *argv[]) updater->get_logger()->print_offline_mode(); } - if (need_config_reload) - { - updater->get_logger()->print_caught_sighup(); - need_config_reload = false; - - if ( updater->reload_config() != 0 ) - { - updater->get_logger()->print_conf_reload_failed_exit(); - exit(-1); - } - } - // Snore, snore... don't hog the cpu if we are in daemon_mode. if ( !exit_now ) sleep(10); /*lint !e534 */