avoid Code-Reject loop
authorBrendan O'Dea <bod@optus.net>
Wed, 31 Aug 2005 12:38:38 +0000 (12:38 +0000)
committerBrendan O'Dea <bod@optus.net>
Wed, 31 Aug 2005 12:38:38 +0000 (12:38 +0000)
Changes
l2tpns.h
l2tpns.spec
ppp.c

diff --git a/Changes b/Changes
index 5df127d..181b4c3 100644 (file)
--- a/Changes
+++ b/Changes
@@ -1,3 +1,6 @@
+* Wed Aug 31 2005 Brendan O'Dea <bod@optus.net> 2.1.5
+- Avoid Code-Reject loop.
+
 * Mon Aug 29 2005 Brendan O'Dea <bod@optus.net> 2.1.4
 - Drop level of "Unexpected CHAP message" log.
 - Fix parsing of ProtocolRej (allow 1 or two byte protocols).
index c58e2d9..cd6e005 100644 (file)
--- a/l2tpns.h
+++ b/l2tpns.h
@@ -1,5 +1,5 @@
 // L2TPNS Global Stuff
-// $Id: l2tpns.h,v 1.85 2005-08-29 06:17:53 bodea Exp $
+// $Id: l2tpns.h,v 1.86 2005-08-31 12:38:38 bodea Exp $
 
 #ifndef __L2TPNS_H__
 #define __L2TPNS_H__
@@ -15,7 +15,7 @@
 #include <sys/types.h>
 #include <libcli.h>
 
-#define VERSION        "2.1.4"
+#define VERSION        "2.1.5"
 
 // Limits
 #define MAXTUNNEL      500             // could be up to 65535
index 29dd2cc..72943db 100644 (file)
@@ -1,6 +1,6 @@
 Summary: A high-speed clustered L2TP LNS
 Name: l2tpns
-Version: 2.1.4
+Version: 2.1.5
 Release: 1
 Copyright: GPL
 Group: System Environment/Daemons
@@ -43,5 +43,5 @@ rm -rf %{buildroot}
 %attr(644,root,root) /usr/share/man/man[58]/*
 
 %changelog
-* Mon Aug 29 2005 Brendan O'Dea <bod@optus.net> 2.1.4-1
-- 2.1.4 release, see /usr/share/doc/l2tpns-2.1.4/Changes
+* Wed Aug 31 2005 Brendan O'Dea <bod@optus.net> 2.1.5-1
+- 2.1.5 release, see /usr/share/doc/l2tpns-2.1.5/Changes
diff --git a/ppp.c b/ppp.c
index abd5609..d25b7e2 100644 (file)
--- a/ppp.c
+++ b/ppp.c
@@ -1,6 +1,6 @@
 // L2TPNS PPP Stuff
 
-char const *cvs_id_ppp = "$Id: ppp.c,v 1.77 2005-08-29 06:17:53 bodea Exp $";
+char const *cvs_id_ppp = "$Id: ppp.c,v 1.78 2005-08-31 12:38:38 bodea Exp $";
 
 #include <stdio.h>
 #include <string.h>
@@ -866,7 +866,7 @@ void processlcp(sessionidt s, tunnelidt t, uint8_t *p, uint16_t l)
        {
                // Ignore it, last_packet time is set earlier than this.
        }
-       else
+       else if (*p != CodeRej)
        {
                int code = *p;
                int mru = session[s].mru;
@@ -1109,7 +1109,7 @@ void processipcp(sessionidt s, tunnelidt t, uint8_t *p, uint16_t l)
                tunnelsend(b, l + (q - b), t);
                change_state(s, ipcp, Stopped);
        }
-       else
+       else if (*p != CodeRej)
        {
                int code = *p;
                int mru = session[s].mru;
@@ -1330,7 +1330,7 @@ void processipv6cp(sessionidt s, tunnelidt t, uint8_t *p, uint16_t l)
                tunnelsend(b, l + (q - b), t);
                change_state(s, ipv6cp, Stopped);
        }
-       else
+       else if (*p != CodeRej)
        {
                int code = *p;
                int mru = session[s].mru;
@@ -1627,7 +1627,7 @@ void processccp(sessionidt s, tunnelidt t, uint8_t *p, uint16_t l)
                else // compression requested--reject
                        *p = ConfigRej;
 
-               q = makeppp(b, sizeof(b), p, l, s, t, PPPCCP);
+               q = makeppp(b,sizeof(b), p, l, s, t, PPPCCP);
                if (!q) return;
 
                switch (session[s].ppp.ccp)
@@ -1691,7 +1691,7 @@ void processccp(sessionidt s, tunnelidt t, uint8_t *p, uint16_t l)
                tunnelsend(b, l + (q - b), t);
                change_state(s, ccp, Stopped);
        }
-       else
+       else if (*p != CodeRej)
        {
                int code = *p;
                int mru = session[s].mru;