+* Wed Aug 17 2005 Brendan O'Dea <bod@optus.net> 2.1.3
+- Fail IPCP negotiation only on ConfigRej of IP-Address.
+
* Wed Aug 10 2005 Brendan O'Dea <bod@optus.net> 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.
// 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__
#include <sys/types.h>
#include <libcli.h>
-#define VERSION "2.1.2"
+#define VERSION "2.1.3"
// Limits
#define MAXTUNNEL 500 // could be up to 65535
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
%attr(644,root,root) /usr/share/man/man[58]/*
%changelog
-* Wed Aug 10 2005 Brendan O'Dea <bod@optus.net> 2.1.2-1
-- 2.1.2 release, see /usr/share/doc/l2tpns-2.1.2/Changes
+* Wed Aug 17 2005 Brendan O'Dea <bod@optus.net> 2.1.3-1
+- 2.1.3 release, see /usr/share/doc/l2tpns-2.1.3/Changes
// 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 <stdio.h>
#include <string.h>
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;