X-Git-Url: https://tinc-vpn.org/git/browse?p=tinc;a=blobdiff_plain;f=src%2Fnet_setup.c;h=f53127b5989085c5753018e8bb4eb9d7f020e503;hp=4bac3f0b0d637498f68b2f0ba84c1d7cae422f2f;hb=1bb5a284fec8c538f8ba243d4f9b2e46f68cd7e8;hpb=1728d5b2c43b33700a9997f97fe8503ad1cf3585 diff --git a/src/net_setup.c b/src/net_setup.c index 4bac3f0b..f53127b5 100644 --- a/src/net_setup.c +++ b/src/net_setup.c @@ -526,11 +526,11 @@ bool setup_network_connections(void) now = time(NULL); + init_events(); init_connections(); init_subnets(); init_nodes(); init_edges(); - init_events(); init_requests(); if(get_config_int(lookup_config(config_tree, "PingInterval"), &pinginterval)) { @@ -572,8 +572,14 @@ void close_network_connections(void) next = node->next; c = node->data; - if(c->outgoing) - free(c->outgoing->name), free(c->outgoing), c->outgoing = NULL; + if(c->outgoing) { + if(c->outgoing->ai) + freeaddrinfo(c->outgoing->ai); + free(c->outgoing->name); + free(c->outgoing); + c->outgoing = NULL; + } + terminate_connection(c, false); } @@ -594,11 +600,11 @@ void close_network_connections(void) envp[4] = NULL; exit_requests(); - exit_events(); exit_edges(); exit_subnets(); exit_nodes(); exit_connections(); + exit_events(); execute_script("tinc-down", envp);