X-Git-Url: https://www.tinc-vpn.org/git/browse?p=tinc;a=blobdiff_plain;f=src%2Fprotocol_key.c;h=b8b1f22379289fbaba071d7cdaa6d76bad827572;hp=f0c9bcc35f9cdfd9dcdfe41740319c3c7febd0fd;hb=6b12bea62fe2e4bd8b5b6bd0e5ca7f53318705db;hpb=a1ab57e2755df6c1a8fab95a0886fea368200b96 diff --git a/src/protocol_key.c b/src/protocol_key.c index f0c9bcc3..b8b1f223 100644 --- a/src/protocol_key.c +++ b/src/protocol_key.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: protocol_key.c,v 1.1.4.23 2003/10/11 12:16:13 guus Exp $ + $Id: protocol_key.c,v 1.1.4.25 2003/12/20 19:47:53 guus Exp $ */ #include "system.h" @@ -80,7 +80,8 @@ bool key_changed_h(connection_t *c) /* Tell the others */ - forward_request(c); + if(!tunnelserver) + forward_request(c); return true; } @@ -130,6 +131,9 @@ bool req_key_h(connection_t *c) memset(from->late, 0, sizeof(from->late)); send_ans_key(c, myself, from); } else { + if(tunnelserver) + return false; + send_req_key(to->nexthop->connection, from, to); } @@ -189,6 +193,9 @@ bool ans_key_h(connection_t *c) /* Forward it if necessary */ if(to != myself) { + if(tunnelserver) + return false; + return send_request(to->nexthop->connection, "%s", c->buffer); } @@ -260,6 +267,8 @@ bool ans_key_h(connection_t *c) return false; } + if(from->options & OPTION_DONTFRAGMENT && !from->mtuprobes) + send_mtu_probe(from); flush_queue(from);