From: Brendan O'Dea Date: Wed, 17 Aug 2005 03:56:27 +0000 (+0000) Subject: fail IPCP negotiation only on ConfigRej of IP-Address X-Git-Tag: 2.2.1-2fdn3.1~19^2^2~1^2~123 X-Git-Url: http://git.sameswireless.fr/l2tpns.git/commitdiff_plain/567f8e36533551fe8c2e9f8c7d5258cae4d57023?ds=inline fail IPCP negotiation only on ConfigRej of IP-Address --- diff --git a/Changes b/Changes index 2d79dc2..1965e88 100644 --- a/Changes +++ b/Changes @@ -1,3 +1,6 @@ +* Wed Aug 17 2005 Brendan O'Dea 2.1.3 +- Fail IPCP negotiation only on ConfigRej of IP-Address. + * Wed Aug 10 2005 Brendan O'Dea 2.1.2 - Clear cluster_master on election so that slaves will accept a new master. - Provide more comments/defaults in etc/startup-config.default. diff --git a/l2tpns.h b/l2tpns.h index 8a16c3c..7895937 100644 --- a/l2tpns.h +++ b/l2tpns.h @@ -1,5 +1,5 @@ // L2TPNS Global Stuff -// $Id: l2tpns.h,v 1.82 2005-08-10 11:25:56 bodea Exp $ +// $Id: l2tpns.h,v 1.83 2005-08-17 03:56:27 bodea Exp $ #ifndef __L2TPNS_H__ #define __L2TPNS_H__ @@ -15,7 +15,7 @@ #include #include -#define VERSION "2.1.2" +#define VERSION "2.1.3" // Limits #define MAXTUNNEL 500 // could be up to 65535 diff --git a/l2tpns.spec b/l2tpns.spec index c236bdd..afe3393 100644 --- a/l2tpns.spec +++ b/l2tpns.spec @@ -1,6 +1,6 @@ Summary: A high-speed clustered L2TP LNS Name: l2tpns -Version: 2.1.2 +Version: 2.1.3 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 -* Wed Aug 10 2005 Brendan O'Dea 2.1.2-1 -- 2.1.2 release, see /usr/share/doc/l2tpns-2.1.2/Changes +* Wed Aug 17 2005 Brendan O'Dea 2.1.3-1 +- 2.1.3 release, see /usr/share/doc/l2tpns-2.1.3/Changes diff --git a/ppp.c b/ppp.c index 340151b..05e0134 100644 --- a/ppp.c +++ b/ppp.c @@ -1,6 +1,6 @@ // L2TPNS PPP Stuff -char const *cvs_id_ppp = "$Id: ppp.c,v 1.73 2005-08-12 14:12:28 bodea Exp $"; +char const *cvs_id_ppp = "$Id: ppp.c,v 1.74 2005-08-17 03:56:27 bodea Exp $"; #include #include @@ -959,8 +959,9 @@ void processipcp(sessionidt s, tunnelidt t, uint8_t *p, uint16_t l) addr = htonl(session[s].ip); if (memcmp(o + 2, &addr, (sizeof addr))) { + uint8_t *oq = q; q = ppp_nak(s, b, sizeof(b), PPPIPCP, &response, q, p, o, (uint8_t *) &addr, sizeof(addr)); - if (!q || *response == ConfigRej) + if (!q || (q != oq && *response == ConfigRej)) { sessionshutdown(s, "Can't negotiate IPCP.", 3, 0); return;