// L2TPNS PPP Stuff
-char const *cvs_id_ppp = "$Id: ppp.c,v 1.71 2005-08-11 06:22:11 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>
LOG(3, s, t, "PAP login %s/%s\n", user, pass);
}
- r = radiusnew(s);
- if (session[s].ip || !r)
+ if (session[s].ip || !(r = radiusnew(s)))
{
// respond now, either no RADIUS available or already authenticated
uint8_t b[MAXCONTROL];
if (!queued)
return 0;
- *nak_sent++;
+ (*nak_sent)++;
*queued = ConfigNak;
queued += 4;
}
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;