From: fred_nerk Date: Mon, 24 May 2004 04:26:01 +0000 (+0000) Subject: Use multiple radius sockets to allow more concurrent authentication requests X-Git-Tag: release_2_0_1~24 X-Git-Url: http://git.sameswireless.fr/l2tpns.git/commitdiff_plain/1af4c16721440b4b92c63ab0977ae8e6814fcf93 Use multiple radius sockets to allow more concurrent authentication requests Remove per-packet plugin hooks (they are slow) --- diff --git a/ppp.c b/ppp.c index 45ee60d..e1edba1 100644 --- a/ppp.c +++ b/ppp.c @@ -1,5 +1,5 @@ // L2TPNS PPP Stuff -// $Id: ppp.c,v 1.3 2004/03/05 00:22:06 fred_nerk Exp $ +// $Id: ppp.c,v 1.4 2004/05/24 04:26:01 fred_nerk Exp $ #include #include @@ -87,7 +87,7 @@ void processpap(tunnelidt t, sessionidt s, u8 * p, u16 l) } else { // set up RADIUS request - u8 r = session[s].radius; + u16 r = session[s].radius; // Run PRE_AUTH plugins struct param_pre_auth packet = { &tunnel[t], &session[s], strdup(user), strdup(pass), PPPPAP, 1 }; @@ -115,7 +115,7 @@ void processpap(tunnelidt t, sessionidt s, u8 * p, u16 l) // Process CHAP messages void processchap(tunnelidt t, sessionidt s, u8 * p, u16 l) { - u8 r; + u16 r; u16 len; #ifdef STAT_CALLS @@ -187,8 +187,8 @@ void processchap(tunnelidt t, sessionidt s, u8 * p, u16 l) } radius[r].chap = 1; - radiussend(r, RADIUSAUTH); log(3, 0, s, t, "CHAP login %s\n", session[s].user); + radiussend(r, RADIUSAUTH); } char *ppp_lcp_types[] = { @@ -407,7 +407,7 @@ void processlcp(tunnelidt t, sessionidt s, u8 * p, u16 l) *p = EchoReply; // reply *(u32 *) (p + 4) = htonl(session[s].magic); // our magic number q = makeppp(b, p, l, t, s, PPPLCP); - log(4, session[s].ip, s, t, "LCP: Received EchoReq. Sending EchoReply\n"); + log(5, session[s].ip, s, t, "LCP: Received EchoReq. Sending EchoReply\n"); tunnelsend(b, l + (q - b), t); // send it } else if (*p == EchoReply) @@ -437,7 +437,7 @@ void processipcp(tunnelidt t, sessionidt s, u8 * p, u16 l) } if (*p == ConfigAck) { // happy with our IPCP - u8 r = session[s].radius; + u16 r = session[s].radius; if ((!r || radius[r].state == RADIUSIPCP) && !session[s].walled_garden) if (!r) r = radiusnew(s); @@ -560,12 +560,6 @@ void processipin(tunnelidt t, sessionidt s, u8 * p, u16 l) *(u32 *)p = htonl(0x00000800); l += 4; - // Plugin hook - { - struct param_packet_rx packet = { &tunnel[t], &session[s], p, l }; - run_plugins(PLUGIN_PACKET_TX, &packet); - } - // send to ethernet if (write(tapfd, p, l) < 0) { @@ -622,7 +616,7 @@ void processccp(tunnelidt t, sessionidt s, u8 * p, u16 l) void sendchap(tunnelidt t, sessionidt s) { u8 b[MAXCONTROL]; - u8 r = session[s].radius; + u16 r = session[s].radius; u8 *q; #ifdef STAT_CALLS STAT(call_sendchap);