X-Git-Url: https://www.tinc-vpn.org/git/browse?p=tinc;a=blobdiff_plain;f=src%2Fprotocol_edge.c;h=1895d5ef68c6973bed2004de144c0cf04f9d7f18;hp=af0b2e7243d31d5b65ebe48f5e90d4cd9887cf10;hb=d8fe2ecdd8dc5caf6f8d6acf2923a0baed64735f;hpb=0e59fb022c6c015a5be7ed70e0378cb011be98b5 diff --git a/src/protocol_edge.c b/src/protocol_edge.c index af0b2e72..1895d5ef 100644 --- a/src/protocol_edge.c +++ b/src/protocol_edge.c @@ -1,7 +1,7 @@ /* protocol_edge.c -- handle the meta-protocol, edges - Copyright (C) 1999-2003 Ivo Timmermans , - 2000-2003 Guus Sliepen + Copyright (C) 1999-2004 Ivo Timmermans , + 2000-2004 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 @@ -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: protocol_edge.c,v 1.1.4.22 2003/11/10 22:31:53 guus Exp $ + $Id$ */ #include "system.h" @@ -110,7 +110,7 @@ bool add_edge_h(connection_t *c) node_add(to); } - if(c->status.opaque && from != myself && from != c->node && to != myself && to != c->node) + if(tunnelserver && from != myself && from != c->node && to != myself && to != c->node) return false; /* Convert addresses */ @@ -157,7 +157,7 @@ bool add_edge_h(connection_t *c) /* Tell the rest about the new edge */ - if(!c->status.opaque) + if(!tunnelserver) forward_request(c); /* Run MST before or after we tell the rest? */ @@ -225,7 +225,7 @@ bool del_edge_h(connection_t *c) return true; } - if(c->status.opaque && from != myself && from != c->node && to != myself && to != c->node) + if(tunnelserver && from != myself && from != c->node && to != myself && to != c->node) return false; /* Check if edge exists */ @@ -247,7 +247,7 @@ bool del_edge_h(connection_t *c) /* Tell the rest about the deleted edge */ - if(!c->status.opaque) + if(!tunnelserver) forward_request(c); /* Delete the edge */ @@ -263,7 +263,8 @@ bool del_edge_h(connection_t *c) if(!to->status.reachable) { e = lookup_edge(to, myself); if(e) { - send_del_edge(broadcast, e); + if(!tunnelserver) + send_del_edge(broadcast, e); edge_del(e); } }