X-Git-Url: https://www.tinc-vpn.org/git/browse?p=tinc;a=blobdiff_plain;f=src%2Fnet.c;h=5e8cfaffaa8a103c819516a664fc4dda80469940;hp=adad410537128bfac04195509faccbc3fbe57f96;hb=cf49b2c0647554613874cce495e4a7937a9f7863;hpb=408ca91766088b6c2d38e198b0692bf394b41248 diff --git a/src/net.c b/src/net.c index adad4105..5e8cfaff 100644 --- a/src/net.c +++ b/src/net.c @@ -17,7 +17,7 @@ along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - $Id: net.c,v 1.35.4.77 2000/11/20 19:12:12 guus Exp $ + $Id: net.c,v 1.35.4.81 2000/11/24 23:13:02 guus Exp $ */ #include "config.h" @@ -806,8 +806,6 @@ cp myself->status.active = 1; syslog(LOG_NOTICE, _("Ready: listening on port %hd"), myself->port); - - child_pids = list_new(); cp return 0; } @@ -852,6 +850,9 @@ int setup_network_connections(void) { config_t const *cfg; cp + init_connections(); + init_subnets(); + if((cfg = get_config_val(config, config_pingtimeout)) == NULL) timeout = 60; else @@ -866,12 +867,12 @@ cp if(setup_tap_fd() < 0) return -1; - if(setup_myself() < 0) - return -1; - /* Run tinc-up script to further initialize the tap interface */ execute_script("tinc-up"); + if(setup_myself() < 0) + return -1; + if(!(cfg = get_config_val(config, config_connectto))) /* No upstream IP given, we're listen only. */ return 0; @@ -922,8 +923,6 @@ cp execute_script("tinc-down"); destroy_connection_tree(); - - syslog(LOG_NOTICE, _("Terminating")); cp return; } @@ -1110,9 +1109,8 @@ cp void terminate_connection(connection_t *cl) { connection_t *p; - subnet_t *s; + subnet_t *subnet; rbl_t *rbl; - cp if(cl->status.remove) return; @@ -1128,7 +1126,6 @@ cp if(cl->status.meta) close(cl->meta_socket); -cp /* Find all connections that were lost because they were behind cl (the connection that was dropped). */ @@ -1152,7 +1149,11 @@ cp /* Remove the associated subnets */ - rbl_delete_rbltree(cl->subnet_tree); + RBL_FOREACH(cl->subnet_tree, rbl) + { + subnet = (subnet_t *)rbl->data; + subnet_del(subnet); + } /* Check if this was our outgoing connection */ @@ -1412,8 +1413,6 @@ cp if(FD_ISSET(tap_fd, &fset)) handle_tap_input(); } - - check_children(); } cp }