X-Git-Url: https://www.tinc-vpn.org/git/browse?p=tinc;a=blobdiff_plain;f=src%2Fprotocol_auth.c;h=14914ba8edc1b5eaa25e2ebc3c753f1b1c2e343f;hp=92e076a85783127d5a784d02446f61c15c69970a;hb=82ebfc923ddb050c88bdf5d65ac943a15ca8748a;hpb=52e7699273a3009fe4d91e608522401076922785 diff --git a/src/protocol_auth.c b/src/protocol_auth.c index 92e076a8..14914ba8 100644 --- a/src/protocol_auth.c +++ b/src/protocol_auth.c @@ -1,7 +1,7 @@ /* protocol_auth.c -- handle the meta-protocol, authentication - Copyright (C) 1999-2002 Ivo Timmermans , - 2000-2002 Guus Sliepen + Copyright (C) 1999-2002 Ivo Timmermans , + 2000-2002 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_auth.c,v 1.1.4.4 2002/03/22 11:43:48 guus Exp $ + $Id: protocol_auth.c,v 1.1.4.12 2002/09/04 13:48:52 guus Exp $ */ #include "config.h" @@ -465,17 +465,13 @@ int send_ack(connection_t *c) to create node_t and edge_t structures. */ int x; - char *address, *port; struct timeval now; cp /* Estimate weight */ gettimeofday(&now, NULL); c->estimated_weight = (now.tv_sec - c->start.tv_sec) * 1000 + (now.tv_usec - c->start.tv_usec) / 1000; - sockaddr2str(&c->address, &address, &port); - x = send_request(c, "%d %s %s %s %d %d", ACK, myport, address, port, c->estimated_weight, c->options); - free(address); - free(port); + x = send_request(c, "%d %s %s %d %lx", ACK, myport, c->estimated_weight, c->options); cp return x; } @@ -506,25 +502,21 @@ void send_everything(connection_t *c) { e = (edge_t *)node->data; - if(e == c->edge) - continue; - send_add_edge(c, e); } } int ack_h(connection_t *c) { - char myaddress[MAX_STRING_SIZE]; char hisport[MAX_STRING_SIZE]; char *hisaddress, *dummy; int weight; - int options; + long int options; node_t *n; connection_t *other; avl_node_t *node; cp - if(sscanf(c->buffer, "%*d "MAX_STRING" "MAX_STRING" %d %d", hisport, myaddress, &weight, &options) != 4) + if(sscanf(c->buffer, "%*d "MAX_STRING" %d %lx", hisport, &weight, &options) != 3) { syslog(LOG_ERR, _("Got bad %s from %s (%s)"), "ACK", c->name, c->hostname); return -1; @@ -561,13 +553,10 @@ cp c->edge = new_edge(); cp - c->edge->from.node = myself; -// c->edge->from.tcpaddress = str2sockaddr(address, port); - c->edge->from.udpaddress = str2sockaddr(myaddress, myport); - c->edge->to.node = n; -// c->edge->to.tcpaddress = c->address; + c->edge->from = myself; + c->edge->to = n; sockaddr2str(&c->address, &hisaddress, &dummy); - c->edge->to.udpaddress = str2sockaddr(hisaddress, hisport); + c->edge->address = str2sockaddr(hisaddress, hisport); free(hisaddress); free(dummy); c->edge->weight = (weight + c->estimated_weight) / 2; @@ -602,11 +591,6 @@ cp /* Run MST and SSSP algorithms */ graph(); - - /* Succesful connection, reset timeout if this is an outgoing connection. */ - - if(c->outgoing) - c->outgoing->timeout = 0; cp return 0; }