X-Git-Url: http://git.meshlink.io/?a=blobdiff_plain;f=src%2Fnet.c;h=87deb97b60d669bf19897a54b6dbd275de644f72;hb=158cbe99f972a1613b7d4d95abfe5fe48e019e67;hp=cae8629881e79ec3d3ebd620b7feebf1e84ca57a;hpb=1564f52f7643c554ec49a3e014bc9b9a8745c856;p=meshlink diff --git a/src/net.c b/src/net.c index cae86298..87deb97b 100644 --- a/src/net.c +++ b/src/net.c @@ -1,9 +1,6 @@ /* net.c -- most of the network code - Copyright (C) 1998-2005 Ivo Timmermans, - 2000-2013 Guus Sliepen - 2006 Scott Lamb - 2011 Loïc Grenié + Copyright (C) 2014 Guus Sliepen This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -56,8 +53,7 @@ void purge(void) { logger(DEBUG_SCARY_THINGS, LOG_DEBUG, "Purging node %s (%s)", n->name, n->hostname); for splay_each(edge_t, e, n->edge_tree) { - if(!tunnelserver) - send_del_edge(everyone, e); + send_del_edge(everyone, e); edge_del(e); } } @@ -90,7 +86,7 @@ void terminate_connection(connection_t *c, bool report) { c->node->connection = NULL; if(c->edge) { - if(report && !tunnelserver) + if(report) send_del_edge(everyone, c->edge); edge_del(c->edge); @@ -106,8 +102,7 @@ void terminate_connection(connection_t *c, bool report) { edge_t *e; e = lookup_edge(c->node, myself); if(e) { - if(!tunnelserver) - send_del_edge(everyone, e); + send_del_edge(everyone, e); edge_del(e); } } @@ -282,24 +277,6 @@ void handle_meta_connection_data(connection_t *c) { } } -#ifndef HAVE_MINGW -static void sigterm_handler(void *data) { - logger(DEBUG_ALWAYS, LOG_NOTICE, "Got %s signal", strsignal(((signal_t *)data)->signum)); - event_exit(); -} - -static void sighup_handler(void *data) { - logger(DEBUG_ALWAYS, LOG_NOTICE, "Got %s signal", strsignal(((signal_t *)data)->signum)); - if(reload_configuration()) - exit(1); -} - -static void sigalrm_handler(void *data) { - logger(DEBUG_ALWAYS, LOG_NOTICE, "Got %s signal", strsignal(((signal_t *)data)->signum)); - retry(); -} -#endif - int reload_configuration(void) { char *fname = NULL; @@ -313,8 +290,6 @@ int reload_configuration(void) { return EINVAL; } - read_config_options(config_tree, NULL); - xasprintf(&fname, "%s" SLASH "hosts" SLASH "%s", confbase, myself->name); read_config_file(config_tree, fname); free(fname); @@ -369,33 +344,11 @@ int main_loop(void) { timeout_add(&pingtimer, timeout_handler, &pingtimer, &(struct timeval){pingtimeout, rand() % 100000}); timeout_add(&periodictimer, periodic_handler, &periodictimer, &(struct timeval){pingtimeout, rand() % 100000}); -#ifndef HAVE_MINGW - signal_t sighup = {0}; - signal_t sigterm = {0}; - signal_t sigquit = {0}; - signal_t sigint = {0}; - signal_t sigalrm = {0}; - - signal_add(&sighup, sighup_handler, &sighup, SIGHUP); - signal_add(&sigterm, sigterm_handler, &sigterm, SIGTERM); - signal_add(&sigquit, sigterm_handler, &sigquit, SIGQUIT); - signal_add(&sigint, sigterm_handler, &sigint, SIGINT); - signal_add(&sigalrm, sigalrm_handler, &sigalrm, SIGALRM); -#endif - if(!event_loop()) { logger(DEBUG_ALWAYS, LOG_ERR, "Error while waiting for input: %s", strerror(errno)); return 1; } -#ifndef HAVE_MINGW - signal_del(&sighup); - signal_del(&sigterm); - signal_del(&sigquit); - signal_del(&sigint); - signal_del(&sigalrm); -#endif - timeout_del(&periodictimer); timeout_del(&pingtimer);