From: Brendan O'Dea Date: Thu, 18 Nov 2004 13:15:28 +0000 (+0000) Subject: Allow LCP re-negotiation after connection completes X-Git-Tag: 2.2.1-2fdn3.1~19^2^2~1^2~334 X-Git-Url: http://git.sameswireless.fr/l2tpns.git/commitdiff_plain/3338e64bfce8a52c25fd85aeb14ac622d921938d?ds=sidebyside Allow LCP re-negotiation after connection completes --- diff --git a/Changes b/Changes index 6ff4fec..73c8112 100644 --- a/Changes +++ b/Changes @@ -10,6 +10,7 @@ - Revise nsctl to allow arbitrary strings/args to be passed to plugins. - Add snoopctl, throttlectl plugins. - Fix deletion from linked list. +- Allow LCP re-negotiation after connection completes (thanks Yuri). * Mon Nov 15 2004 Brendan O'Dea 2.0.7 - Fix socket creation in host_unreachable() (thanks to Bjørn Augestad) diff --git a/ppp.c b/ppp.c index f0e47e0..a169512 100644 --- a/ppp.c +++ b/ppp.c @@ -1,6 +1,6 @@ // L2TPNS PPP Stuff -char const *cvs_id_ppp = "$Id: ppp.c,v 1.26 2004-11-16 07:54:32 bodea Exp $"; +char const *cvs_id_ppp = "$Id: ppp.c,v 1.27 2004-11-18 13:15:28 bodea Exp $"; #include #include @@ -600,6 +600,10 @@ void processipcp(tunnelidt t, sessionidt s, u8 *p, u16 l) session[s].flags |= SF_IPCP_ACKED; LOG(3, session[s].ip, s, t, "IPCP Acked, session is now active\n"); + + // clear LCP_ACKED flag for possible fast renegotiaion for routers + session[s].flags &= ~SF_LCP_ACKED; + return; } if (*p != ConfigReq) @@ -840,7 +844,7 @@ void processccp(tunnelidt t, sessionidt s, u8 *p, u16 l) *p = TerminateAck; // close if (!(q = makeppp(b, sizeof(b), p, l, t, s, PPPCCP))) { - LOG(1,0,0,0, "Failed to send CCP packet.\n"); + LOG(1,0,0,0, "Failed to send CCP packet.\n"); return; } tunnelsend(b, l + (q - b), t); // send it