- if(receive_meta(c) < 0) {
- terminate_connection(c, c->status.active);
- continue;
- }
+static void dummy(int a, short b, void *c)
+{
+}
+
+void sighup_handler(int signal, short events, void *data) {
+ connection_t *c;
+ avl_node_t *node;
+ char *fname;
+ struct stat s;
+ static time_t last_config_check = 0;
+
+ /* Reread our own configuration file */
+
+ exit_configuration(&config_tree);
+ init_configuration(&config_tree);
+
+ if(!read_server_config()) {
+ logger(LOG_ERR, _("Unable to reread configuration file, exitting."));
+ event_loopexit(NULL);
+ return;
+ }
+
+ /* Close connections to hosts that have a changed or deleted host config file */
+
+ for(node = connection_tree->head; node; node = node->next) {
+ c = node->data;
+
+ if(c->outgoing) {
+ free(c->outgoing->name);
+ if(c->outgoing->ai)
+ freeaddrinfo(c->outgoing->ai);
+ free(c->outgoing);
+ c->outgoing = NULL;