first version of the LAC functionality
This commit is contained in:
parent
7fd68b1dae
commit
4df24fd868
7 changed files with 582 additions and 10 deletions
25
ppp.c
25
ppp.c
|
|
@ -1,5 +1,7 @@
|
|||
// L2TPNS PPP Stuff
|
||||
|
||||
//#define LAC
|
||||
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include <unistd.h>
|
||||
|
|
@ -12,6 +14,10 @@
|
|||
#include "tbf.h"
|
||||
#include "cluster.h"
|
||||
|
||||
#ifdef LAC
|
||||
#include "l2tplac.h"
|
||||
#endif
|
||||
|
||||
extern tunnelt *tunnel;
|
||||
extern bundlet *bundle;
|
||||
extern fragmentationt *frag;
|
||||
|
|
@ -100,6 +106,14 @@ void processpap(sessionidt s, tunnelidt t, uint8_t *p, uint16_t l)
|
|||
LOG(3, s, t, "PAP login %s/%s\n", user, pass);
|
||||
}
|
||||
|
||||
#ifdef LAC
|
||||
if (forwardtolns(s, user))
|
||||
{
|
||||
LOG(3, s, t, "Forwarding login for %s to other LNS\n", user);
|
||||
return;
|
||||
}
|
||||
#endif
|
||||
|
||||
if (session[s].ip || !(r = radiusnew(s)))
|
||||
{
|
||||
// respond now, either no RADIUS available or already authenticated
|
||||
|
|
@ -251,6 +265,17 @@ void processchap(sessionidt s, tunnelidt t, uint8_t *p, uint16_t l)
|
|||
packet.username = calloc(l + 1, 1);
|
||||
memcpy(packet.username, p, l);
|
||||
|
||||
#ifdef LAC
|
||||
if (forwardtolns(s, packet.username))
|
||||
{
|
||||
LOG(3, s, t, "Forwarding login for %s to other LNS\n", packet.username);
|
||||
|
||||
free(packet.username);
|
||||
free(packet.password);
|
||||
return;
|
||||
}
|
||||
#endif
|
||||
|
||||
run_plugins(PLUGIN_PRE_AUTH, &packet);
|
||||
if (!packet.continue_auth)
|
||||
{
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue