X-Git-Url: http://git.meshlink.io/?a=blobdiff_plain;f=src%2Fnet_setup.c;h=4407cd4f7353235b0237e8f1a85806cd44e6e52a;hb=01f47c46af514a9d7f39c143e4558a8426a0d3eb;hp=c5f776af613111c417fec9d07792cd463ca47585;hpb=6ded8a3f089a22c98d2a06b960d65b44e60188d6;p=meshlink diff --git a/src/net_setup.c b/src/net_setup.c index c5f776af..4407cd4f 100644 --- a/src/net_setup.c +++ b/src/net_setup.c @@ -31,6 +31,7 @@ #include "splay_tree.h" #include "conf.h" #include "connection.h" +#include "control.h" #include "device.h" #include "graph.h" #include "logger.h" @@ -525,10 +526,8 @@ bool setup_myself(void) { EV_READ|EV_PERSIST, handle_new_meta_connection, NULL); if(event_add(&listen_socket[listen_sockets].ev_tcp, NULL) < 0) { - logger(LOG_WARNING, _("event_add failed: %s"), strerror(errno)); - close(listen_socket[listen_sockets].tcp); - close(listen_socket[listen_sockets].udp); - continue; + logger(LOG_EMERG, _("event_add failed: %s"), strerror(errno)); + abort(); } event_set(&listen_socket[listen_sockets].ev_udp, @@ -536,11 +535,8 @@ bool setup_myself(void) { EV_READ|EV_PERSIST, handle_incoming_vpn_data, NULL); if(event_add(&listen_socket[listen_sockets].ev_udp, NULL) < 0) { - logger(LOG_WARNING, _("event_add failed: %s"), strerror(errno)); - close(listen_socket[listen_sockets].tcp); - close(listen_socket[listen_sockets].udp); - event_del(&listen_socket[listen_sockets].ev_tcp); - continue; + logger(LOG_EMERG, _("event_add failed: %s"), strerror(errno)); + abort(); } ifdebug(CONNECTIONS) { @@ -581,6 +577,7 @@ bool setup_network_connections(void) { init_nodes(); init_edges(); init_requests(); + init_control(); if(get_config_int(lookup_config(config_tree, "PingInterval"), &pinginterval)) { if(pinginterval < 1) { @@ -649,6 +646,7 @@ void close_network_connections(void) { asprintf(&envp[3], "NAME=%s", myself->name); envp[4] = NULL; + exit_control(); exit_requests(); exit_edges(); exit_subnets();