X-Git-Url: https://www.tinc-vpn.org/git/browse?p=tinc;a=blobdiff_plain;f=src%2Fnet.c;h=164497688b70f6b35e76f4d930c89b117e869cd1;hp=7bf39897621ce26a0225c098af28f1951c5d44dd;hb=5a1406adefd8b51981af0da5ac0ebec830eb43b4;hpb=6c5f3d8b74ffea1522a727ef189a5ba65a939e07 diff --git a/src/net.c b/src/net.c index 7bf39897..16449768 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.200 2003/08/28 21:05:10 guus Exp $ + $Id: net.c,v 1.35.4.202 2003/12/12 19:52:24 guus Exp $ */ #include "system.h" @@ -72,14 +72,16 @@ static void purge(void) for(snode = n->subnet_tree->head; snode; snode = snext) { snext = snode->next; s = snode->data; - send_del_subnet(broadcast, s); + if(!tunnelserver) + send_del_subnet(broadcast, s); subnet_del(n, s); } for(enode = n->edge_tree->head; enode; enode = enext) { enext = enode->next; e = enode->data; - send_del_edge(broadcast, e); + if(!tunnelserver) + send_del_edge(broadcast, e); edge_del(e); } } @@ -178,7 +180,7 @@ void terminate_connection(connection_t *c, bool report) closesocket(c->socket); if(c->edge) { - if(report) + if(report && !tunnelserver) send_del_edge(broadcast, c->edge); edge_del(c->edge); @@ -193,7 +195,8 @@ void terminate_connection(connection_t *c, bool report) edge_t *e; e = lookup_edge(c->node, myself); if(e) { - send_del_edge(broadcast, e); + if(!tunnelserver) + send_del_edge(broadcast, e); edge_del(e); } } @@ -267,7 +270,7 @@ static void check_network_activity(fd_set * f) if(FD_ISSET(device_fd, f)) { if(read_packet(&packet)) - route_outgoing(&packet); + route(myself, &packet); } for(node = connection_tree->head; node; node = node->next) { @@ -364,7 +367,7 @@ int main_loop(void) last_ping_check = now; if(routing_mode == RMODE_SWITCH) - age_mac(); + age_subnets(); age_past_requests();