X-Git-Url: https://www.tinc-vpn.org/git/browse?p=tinc;a=blobdiff_plain;f=src%2Fnet_setup.c;h=f53127b5989085c5753018e8bb4eb9d7f020e503;hp=d03869e624ea5e9e327e3d921ac8679493c34000;hb=e9576632dc4b780b867044269d06cc50f76d8c05;hpb=f88c9942e1e3d4d463ec71ba5a60d045381bda8f diff --git a/src/net_setup.c b/src/net_setup.c index d03869e6..f53127b5 100644 --- a/src/net_setup.c +++ b/src/net_setup.c @@ -437,7 +437,6 @@ bool setup_myself(void) myself->nexthop = myself; myself->via = myself; - myself->status.active = true; myself->status.reachable = true; node_add(myself); @@ -527,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)) { @@ -573,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); } @@ -595,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);