From 2d71fa112c0a2c84d100a8877b1e93b9c079e291 Mon Sep 17 00:00:00 2001 From: Brendan O'Dea Date: Tue, 11 Oct 2005 07:06:56 +0000 Subject: [PATCH 1/1] don't send tunnel HELLO when there are pending control messages --- Changes | 3 ++- l2tpns.c | 6 +++--- l2tpns.h | 4 ++-- l2tpns.spec | 2 +- 4 files changed, 8 insertions(+), 7 deletions(-) diff --git a/Changes b/Changes index 9d913cc..e245c30 100644 --- a/Changes +++ b/Changes @@ -1,6 +1,7 @@ -* Tue Oct 11 2005 Michael Chapman 2.1.9 +* Tue Oct 11 2005 Brendan O'Dea 2.1.9 - Fix Calling-Station-Id in RADIUS accounting records (Slobodan Tomic). - Fix RADIUS authentication on DAE responses. +- Don't send tunnel HELLO when there are pending control messages. * Mon Sep 19 2005 Brendan O'Dea 2.1.8 - Move code from signal handlers into mainloop, avoiding a race diff --git a/l2tpns.c b/l2tpns.c index 3b4b6af..81d6dcc 100644 --- a/l2tpns.c +++ b/l2tpns.c @@ -4,7 +4,7 @@ // Copyright (c) 2002 FireBrick (Andrews & Arnold Ltd / Watchfront Ltd) - GPL licenced // vim: sw=8 ts=8 -char const *cvs_id_l2tpns = "$Id: l2tpns.c,v 1.142 2005-09-19 02:39:57 bodea Exp $"; +char const *cvs_id_l2tpns = "$Id: l2tpns.c,v 1.143 2005-10-11 07:06:56 bodea Exp $"; #include #include @@ -961,7 +961,7 @@ void tunnelsend(uint8_t * buf, uint16_t l, tunnelidt t) { tunnel[t].last = time_now; // control message sent tunnel[t].retry = backoff(tunnel[t].try); // when to resend - if (tunnel[t].try > 1) + if (tunnel[t].try) { STAT(tunnel_retries); LOG(3, 0, t, "Control message resend try %d\n", tunnel[t].try); @@ -2745,7 +2745,7 @@ static void regular_cleanups(double period) } } // Send hello - if (tunnel[t].state == TUNNELOPEN && (time_now - tunnel[t].lastrec) > 60) + if (tunnel[t].state == TUNNELOPEN && !tunnel[t].controlc && (time_now - tunnel[t].lastrec) > 60) { controlt *c = controlnew(6); // sending HELLO controladd(c, 0, t); // send the message diff --git a/l2tpns.h b/l2tpns.h index 275c95f..46ca4e6 100644 --- a/l2tpns.h +++ b/l2tpns.h @@ -1,5 +1,5 @@ // L2TPNS Global Stuff -// $Id: l2tpns.h,v 1.93 2005-09-30 13:13:26 bodea Exp $ +// $Id: l2tpns.h,v 1.94 2005-10-11 07:06:56 bodea Exp $ #ifndef __L2TPNS_H__ #define __L2TPNS_H__ @@ -323,7 +323,7 @@ typedef struct uint16_t ns; // next send int state; // current state (tunnelstate enum) clockt last; // when last control message sent (used for resend timeout) - clockt retry; // when to try resenting pending control + clockt retry; // when to try resending pending control clockt die; // being closed, when to finally free clockt lastrec; // when the last control message was received char hostname[128]; // tunnel hostname diff --git a/l2tpns.spec b/l2tpns.spec index 3f4e076..e1cf5a5 100644 --- a/l2tpns.spec +++ b/l2tpns.spec @@ -43,5 +43,5 @@ rm -rf %{buildroot} %attr(644,root,root) /usr/share/man/man[58]/* %changelog -* Tue Oct 11 2005 Michael Chapman 2.1.9-1 +* Tue Oct 11 2005 Brendan O'Dea 2.1.9-1 - 2.1.9 release, see /usr/share/doc/l2tpns-2.1.9/Changes -- 2.20.1