X-Git-Url: https://tinc-vpn.org/git/browse?a=blobdiff_plain;ds=sidebyside;f=src%2Fprotocol_edge.c;h=df39bb977a6b8793307c4cdb64ad4cabf0119158;hb=f02d3ed3e135b5326003e7f69f8331ff6a3cc219;hp=af0b2e7243d31d5b65ebe48f5e90d4cd9887cf10;hpb=0e59fb022c6c015a5be7ed70e0378cb011be98b5;p=tinc diff --git a/src/protocol_edge.c b/src/protocol_edge.c index af0b2e72..df39bb97 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-2005 Ivo Timmermans, + 2000-2006 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" @@ -36,8 +36,7 @@ #include "utils.h" #include "xalloc.h" -bool send_add_edge(connection_t *c, const edge_t *e) -{ +bool send_add_edge(connection_t *c, const edge_t *e) { bool x; char *address, *port; @@ -54,8 +53,7 @@ bool send_add_edge(connection_t *c, const edge_t *e) return x; } -bool add_edge_h(connection_t *c) -{ +bool add_edge_h(connection_t *c) { edge_t *e; node_t *from, *to; char from_name[MAX_STRING_SIZE]; @@ -110,7 +108,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 +155,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? */ @@ -167,16 +165,14 @@ bool add_edge_h(connection_t *c) return true; } -bool send_del_edge(connection_t *c, const edge_t *e) -{ +bool send_del_edge(connection_t *c, const edge_t *e) { cp(); return send_request(c, "%d %lx %s %s", DEL_EDGE, random(), e->from->name, e->to->name); } -bool del_edge_h(connection_t *c) -{ +bool del_edge_h(connection_t *c) { edge_t *e; char from_name[MAX_STRING_SIZE]; char to_name[MAX_STRING_SIZE]; @@ -225,7 +221,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 +243,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 +259,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); } }