}
static void sighup_handler(int signal, short events, void *data) {
+ logger(LOG_NOTICE, _("Got %s signal"), strsignal(signal));
+ reload_configuration();
+}
+
+int reload_configuration(void) {
connection_t *c;
splay_node_t *node, *next;
char *fname;
struct stat s;
static time_t last_config_check = 0;
-
- logger(LOG_NOTICE, _("Got %s signal"), strsignal(signal));
/* Reread our own configuration file */
if(!read_server_config()) {
logger(LOG_ERR, _("Unable to reread configuration file, exitting."));
event_loopexit(NULL);
- return;
+ return EINVAL;
}
/* Close connections to hosts that have a changed or deleted host config file */
/* Try to make outgoing connections */
try_outgoing_connections();
-}
-static void sigalrm_handler(int signal, short events, void *data) {
- logger(LOG_NOTICE, _("Got %s signal"), strsignal(signal));
+ return 0;
+}
+void retry(void) {
connection_t *c;
splay_node_t *node;
struct event sighup_event;
struct event sigterm_event;
struct event sigquit_event;
- struct event sigalrm_event;
cp();
signal_add(&sigterm_event, NULL);
signal_set(&sigquit_event, SIGQUIT, sigterm_handler, NULL);
signal_add(&sigquit_event, NULL);
- signal_set(&sigalrm_event, SIGALRM, sigalrm_handler, NULL);
- signal_add(&sigalrm_event, NULL);
if(event_loop(0) < 0) {
logger(LOG_ERR, _("Error while waiting for input: %s"), strerror(errno));
signal_del(&sighup_event);
signal_del(&sigterm_event);
signal_del(&sigquit_event);
- signal_del(&sigalrm_event);
event_del(&timeout_event);
return 0;