X-Git-Url: https://tinc-vpn.org/git/browse?p=tinc;a=blobdiff_plain;f=src%2Fnet_setup.c;h=70992f6b6a600fe289240623e6166cf49021a92d;hp=f4246db25984e6a89ea19e12916bffdfca35e09b;hb=78fc59e994c764d072bf0045177f690a378d1308;hpb=0e4d419aae8a82f2ae4552f755894a9bc70c83d2 diff --git a/src/net_setup.c b/src/net_setup.c index f4246db2..70992f6b 100644 --- a/src/net_setup.c +++ b/src/net_setup.c @@ -1,7 +1,7 @@ /* net_setup.c -- Setup. Copyright (C) 1998-2005 Ivo Timmermans, - 2000-2008 Guus Sliepen + 2000-2009 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 @@ -571,21 +571,16 @@ void close_network_connections(void) for(node = connection_tree->head; node; node = next) { next = node->next; c = node->data; - - if(c->outgoing) { - if(c->outgoing->ai) - freeaddrinfo(c->outgoing->ai); - free(c->outgoing->name); - free(c->outgoing); - c->outgoing = NULL; - } - + c->outgoing = false; terminate_connection(c, false); } + list_delete_list(outgoing_list); + if(myself && myself->connection) { subnet_update(myself, NULL, false); terminate_connection(myself->connection, false); + free_connection(myself->connection); } for(i = 0; i < listen_sockets; i++) { @@ -608,6 +603,10 @@ void close_network_connections(void) execute_script("tinc-down", envp); + if(myport) free(myport); + + EVP_CIPHER_CTX_cleanup(&packet_ctx); + for(i = 0; i < 4; i++) free(envp[i]);