Update copyrights, links, email addresses and let Subversion update $Id$ keywords.
[oweals/tinc.git] / src / protocol_key.c
index f0c9bcc35f9cdfd9dcdfe41740319c3c7febd0fd..ebe6354836b0a21325213ab7c239f9adc0836379 100644 (file)
@@ -1,7 +1,7 @@
 /*
     protocol_key.c -- handle the meta-protocol, key exchange
-    Copyright (C) 1999-2003 Ivo Timmermans <ivo@o2w.nl>,
-                  2000-2003 Guus Sliepen <guus@sliepen.eu.org>
+    Copyright (C) 1999-2004 Ivo Timmermans <ivo@tinc-vpn.org>,
+                  2000-2004 Guus Sliepen <guus@tinc-vpn.org>
 
     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_key.c,v 1.1.4.23 2003/10/11 12:16:13 guus Exp $
+    $Id$
 */
 
 #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_PMTU_DISCOVERY && !from->mtuprobes)
+               send_mtu_probe(from);
 
        flush_queue(from);