Fix: authentication success was sent 2 times.

This commit is contained in:
fendo 2013-06-04 11:49:10 +02:00
parent 18c0dec97f
commit 733fc0b1a2
2 changed files with 6 additions and 34 deletions

6
debian/changelog vendored
View file

@ -1,3 +1,9 @@
l2tpns (2.2.1-2fdn3.10) unstable; urgency=low
* Fix: authentication success was sent 2 times.
-- Fernando Alves <fernando.alves@sameswireless.fr> Tue, 04 Jun 2013 11:38:04 +0200
l2tpns (2.2.1-2fdn3.9) unstable; urgency=low
* Adding the possibility to set multiple hostname.

View file

@ -597,40 +597,6 @@ void processrad(uint8_t *buf, int len, char socket_index)
run_plugins(PLUGIN_POST_AUTH, &packet);
r_code = packet.auth_allowed ? AccessAccept : AccessReject;
#ifndef LAC
// process auth response
if (radius[r].chap)
{
// CHAP
uint8_t *p = makeppp(b, sizeof(b), 0, 0, s, t, PPPCHAP, 0, 0, 0);
if (!p) return; // Abort!
*p = (r_code == AccessAccept) ? 3 : 4; // ack/nak
p[1] = radius[r].id;
*(uint16_t *) (p + 2) = ntohs(4); // no message
tunnelsend(b, (p - b) + 4, t); // send it
LOG(3, s, session[s].tunnel, " CHAP User %s authentication %s.\n", session[s].user,
(r_code == AccessAccept) ? "allowed" : "denied");
}
else
{
// PAP
uint8_t *p = makeppp(b, sizeof(b), 0, 0, s, t, PPPPAP, 0, 0, 0);
if (!p) return; // Abort!
// ack/nak
*p = r_code;
p[1] = radius[r].id;
*(uint16_t *) (p + 2) = ntohs(5);
p[4] = 0; // no message
tunnelsend(b, (p - b) + 5, t); // send it
LOG(3, s, session[s].tunnel, " PAP User %s authentication %s.\n", session[s].user,
(r_code == AccessAccept) ? "allowed" : "denied");
}
#endif
if (r_code == AccessAccept)
{
// Login successful