X-Git-Url: http://git.sameswireless.fr/l2tpns.git/blobdiff_plain/4df24fd868177859ddd778f1f45bc825f6264cfb..caa9662496578822d24926b927365639c936c761:/ppp.c diff --git a/ppp.c b/ppp.c index 518f6ec..5ed8563 100644 --- a/ppp.c +++ b/ppp.c @@ -1,7 +1,5 @@ // L2TPNS PPP Stuff -//#define LAC - #include #include #include @@ -17,6 +15,7 @@ #ifdef LAC #include "l2tplac.h" #endif +#include "pppoe.h" extern tunnelt *tunnel; extern bundlet *bundle; @@ -107,9 +106,9 @@ void processpap(sessionidt s, tunnelidt t, uint8_t *p, uint16_t l) } #ifdef LAC - if (forwardtolns(s, user)) + if ((!config->disable_lac_func) && lac_conf_forwardtoremotelns(s, user)) { - LOG(3, s, t, "Forwarding login for %s to other LNS\n", user); + // Creating a tunnel/session has been started return; } #endif @@ -266,12 +265,11 @@ void processchap(sessionidt s, tunnelidt t, uint8_t *p, uint16_t l) memcpy(packet.username, p, l); #ifdef LAC - if (forwardtolns(s, packet.username)) + if ((!config->disable_lac_func) && lac_conf_forwardtoremotelns(s, packet.username)) { - LOG(3, s, t, "Forwarding login for %s to other LNS\n", packet.username); - free(packet.username); free(packet.password); + // Creating a tunnel/session has been started return; } #endif @@ -428,7 +426,7 @@ void lcp_open(sessionidt s, tunnelidt t) } } -static void lcp_restart(sessionidt s) +void lcp_restart(sessionidt s) { session[s].ppp.phase = Establish; // This-Layer-Down @@ -561,7 +559,7 @@ void processlcp(sessionidt s, tunnelidt t, uint8_t *p, uint16_t l) if (session[s].die) // going down... return; - LOG((*p == EchoReq || *p == EchoReply) ? 4 : 3, s, t, + LOG(((*p == EchoReq || *p == EchoReply) ? 4 : 3), s, t, "LCP: recv %s\n", ppp_code(*p)); if (config->debug > 3) dumplcp(p, l); @@ -2524,6 +2522,11 @@ uint8_t *makeppp(uint8_t *b, int size, uint8_t *p, int l, sessionidt s, tunnelid uint16_t type = mtype; uint8_t *start = b; + if (t == TUNNEL_ID_PPPOE) + { + return pppoe_makeppp(b, size, p, l, s, t, mtype, prio, bid, mp_bits); + } + if (size < 16) // Need more space than this!! { LOG(0, s, t, "makeppp buffer too small for L2TP header (size=%d)\n", size);