X-Git-Url: https://tinc-vpn.org/git/browse?p=tinc;a=blobdiff_plain;f=src%2Fnet_packet.c;h=bd1e4e21d4a56cc1be817955bd653aa5330b355d;hp=dcdd73cac3f1e231e807b79b173f15644a60bade;hb=b5bb06200eda170c9836e1b4474d6f5b920c2151;hpb=305505f5ec4bb738f175cd897fa409f08d2971a3 diff --git a/src/net_packet.c b/src/net_packet.c index dcdd73ca..bd1e4e21 100644 --- a/src/net_packet.c +++ b/src/net_packet.c @@ -1,7 +1,7 @@ /* net_packet.c -- Handles in- and outgoing VPN packets - Copyright (C) 1998-2002 Ivo Timmermans , - 2000-2002 Guus Sliepen + Copyright (C) 1998-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: net_packet.c,v 1.1.2.11 2002/03/18 22:47:20 guus Exp $ + $Id: net_packet.c,v 1.1.2.18 2002/09/03 20:43:25 guus Exp $ */ #include "config.h" @@ -26,8 +26,13 @@ #include #include #include -#ifdef HAVE_LINUX +#ifdef HAVE_NETINET_IN_SYSTM_H + #include +#endif +#ifdef HAVE_NETINET_IP_H #include +#endif +#ifdef HAVE_NETINET_TCP_H #include #endif #include @@ -50,10 +55,6 @@ #include #include -#ifndef HAVE_RAND_PSEUDO_BYTES -#define RAND_pseudo_bytes RAND_bytes -#endif - #include #include @@ -69,7 +70,6 @@ #include "process.h" #include "protocol.h" #include "subnet.h" -#include "graph.h" #include "process.h" #include "route.h" #include "device.h" @@ -212,9 +212,14 @@ cp list_insert_tail(n->queue, copy); + if(n->queue->count > MAXQUEUELENGTH) + list_delete_head(n->queue); + if(!n->status.waitingforkey) send_req_key(n->nexthop->connection, myself, n); + n->status.waitingforkey = 1; + return; } @@ -326,7 +331,7 @@ cp return; } - via = (n->via == myself)?n->nexthop:n->via; + via = (n->options & OPTION_INDIRECT)?n->nexthop:n; if(via != n && debug_lvl >= DEBUG_TRAFFIC) syslog(LOG_ERR, _("Sending packet to %s via %s (%s)"),