X-Git-Url: https://www.tinc-vpn.org/git/browse?p=tinc;a=blobdiff_plain;f=src%2Fprotocol.c;h=46c4c7b8f46d6f51fe5b83c161d7d8dbac701e91;hp=85a4047c2c9360886a96233504588b30209987ae;hb=d3f889c8076dff9c00ebfe1459cb36425f8da41d;hpb=e924096f62655d711cd2d114a8d1ef0fecbb593b diff --git a/src/protocol.c b/src/protocol.c index 85a4047c..46c4c7b8 100644 --- a/src/protocol.c +++ b/src/protocol.c @@ -1,7 +1,7 @@ /* protocol.c -- handle the meta-protocol - Copyright (C) 1999,2000 Ivo Timmermans , - 2000 Guus Sliepen + Copyright (C) 1999-2001 Ivo Timmermans , + 2000,2001 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.c,v 1.28.4.71 2001/01/05 23:53:51 guus Exp $ + $Id: protocol.c,v 1.28.4.74 2001/01/07 17:09:02 guus Exp $ */ #include "config.h" @@ -35,6 +35,7 @@ #include #include #include +#include #include @@ -196,6 +197,7 @@ int id_h(connection_t *cl) connection_t *old; unsigned short int port; char name[MAX_STRING_SIZE]; + avl_node_t *node; cp if(sscanf(cl->buffer, "%*d "MAX_STRING" %d %lx %hd", name, &cl->protocol_version, &cl->options, &port) != 4) { @@ -256,9 +258,9 @@ cp /* And uhr... cl->port just changed so we have to unlink it from the connection tree and re-insert... */ - avl_unlink(connection_tree, cl); + node = avl_unlink(connection_tree, cl); cl->port = port; - avl_insert(connection_tree, cl); + avl_insert_node(connection_tree, node); /* Read in the public key, so that we can send a challenge */ @@ -1257,6 +1259,8 @@ cp from->status.validkey = 1; from->status.waitingforkey = 0; + + flush_queue(from); cp return 0; }