tidy up logging, RADIUS allocation

This commit is contained in:
bodea 2005-08-10 08:04:26 +00:00
parent e9f834555d
commit b8cd61ce5a
2 changed files with 26 additions and 29 deletions

View file

@ -4,7 +4,7 @@
// Copyright (c) 2002 FireBrick (Andrews & Arnold Ltd / Watchfront Ltd) - GPL licenced // Copyright (c) 2002 FireBrick (Andrews & Arnold Ltd / Watchfront Ltd) - GPL licenced
// vim: sw=8 ts=8 // vim: sw=8 ts=8
char const *cvs_id_l2tpns = "$Id: l2tpns.c,v 1.116 2005/08/10 07:25:24 bodea Exp $"; char const *cvs_id_l2tpns = "$Id: l2tpns.c,v 1.117 2005/08/10 08:04:26 bodea Exp $";
#include <arpa/inet.h> #include <arpa/inet.h>
#include <assert.h> #include <assert.h>
@ -2233,16 +2233,12 @@ void processudp(uint8_t *buf, int len, struct sockaddr_in *addr)
case 31: // Proxy Authentication Challenge case 31: // Proxy Authentication Challenge
{ {
LOG(4, s, t, " Proxy Auth Challenge\n"); LOG(4, s, t, " Proxy Auth Challenge\n");
if (sess_local[s].radius)
memcpy(radius[sess_local[s].radius].auth, b, 16);
break; break;
} }
case 32: // Proxy Authentication ID case 32: // Proxy Authentication ID
{ {
uint16_t authid = ntohs(*(uint16_t *)(b)); uint16_t authid = ntohs(*(uint16_t *)(b));
LOG(4, s, t, " Proxy Auth ID (%d)\n", authid); LOG(4, s, t, " Proxy Auth ID (%d)\n", authid);
if (sess_local[s].radius)
radius[sess_local[s].radius].id = authid;
break; break;
} }
case 33: // Proxy Authentication Response case 33: // Proxy Authentication Response

49
ppp.c
View file

@ -1,6 +1,6 @@
// L2TPNS PPP Stuff // L2TPNS PPP Stuff
char const *cvs_id_ppp = "$Id: ppp.c,v 1.65 2005/07/31 10:04:10 bodea Exp $"; char const *cvs_id_ppp = "$Id: ppp.c,v 1.66 2005/08/10 08:04:26 bodea Exp $";
#include <stdio.h> #include <stdio.h>
#include <string.h> #include <string.h>
@ -134,7 +134,7 @@ void processpap(tunnelidt t, sessionidt s, uint8_t *p, uint16_t l)
free(packet.password); free(packet.password);
radius[r].id = p[1]; radius[r].id = p[1];
LOG(3, s, t, "Sending login for %s/%s to radius\n", user, pass); LOG(3, s, t, "Sending login for %s/%s to RADIUS\n", user, pass);
radiussend(r, RADIUSAUTH); radiussend(r, RADIUSAUTH);
} }
} }
@ -289,24 +289,24 @@ static void dumplcp(uint8_t *p, int l)
LOG(4, 0, 0, " %s %x\n", ppp_lcp_option(type), asyncmap); LOG(4, 0, 0, " %s %x\n", ppp_lcp_option(type), asyncmap);
} }
else else
LOG(4, 0, 0, " %s odd length %d\n", ppp_lcp_option(type), length); LOG(4, 0, 0, " %s odd length %d\n", ppp_lcp_option(type), length);
break; break;
case 3: // Authentication-Protocol case 3: // Authentication-Protocol
if (length == 4) if (length == 4)
{ {
int proto = ntohs(*(uint16_t *)(o + 2)); int proto = ntohs(*(uint16_t *)(o + 2));
LOG(4, 0, 0, " %s 0x%x (%s)\n", ppp_lcp_option(type), proto, LOG(4, 0, 0, " %s 0x%x (%s)\n", ppp_lcp_option(type), proto,
proto == PPPPAP ? "PAP" : "UNSUPPORTED"); proto == PPPPAP ? "PAP" : "UNSUPPORTED");
} }
else if (length == 5) else if (length == 5)
{ {
int proto = ntohs(*(uint16_t *)(o + 2)); int proto = ntohs(*(uint16_t *)(o + 2));
int algo = *(uint8_t *)(o + 4); int algo = *(uint8_t *)(o + 4);
LOG(4, 0, 0, " %s 0x%x 0x%x (%s)\n", ppp_lcp_option(type), proto, algo, LOG(4, 0, 0, " %s 0x%x 0x%x (%s)\n", ppp_lcp_option(type), proto, algo,
(proto == PPPCHAP && algo == 5) ? "CHAP MD5" : "UNSUPPORTED"); (proto == PPPCHAP && algo == 5) ? "CHAP MD5" : "UNSUPPORTED");
} }
else else
LOG(4, 0, 0, " %s odd length %d\n", ppp_lcp_option(type), length); LOG(4, 0, 0, " %s odd length %d\n", ppp_lcp_option(type), length);
break; break;
case 4: // Quality-Protocol case 4: // Quality-Protocol
{ {
@ -321,7 +321,7 @@ static void dumplcp(uint8_t *p, int l)
LOG(4, 0, 0, " %s %x\n", ppp_lcp_option(type), magicno); LOG(4, 0, 0, " %s %x\n", ppp_lcp_option(type), magicno);
} }
else else
LOG(4, 0, 0, " %s odd length %d\n", ppp_lcp_option(type), length); LOG(4, 0, 0, " %s odd length %d\n", ppp_lcp_option(type), length);
break; break;
case 7: // Protocol-Field-Compression case 7: // Protocol-Field-Compression
case 8: // Address-And-Control-Field-Compression case 8: // Address-And-Control-Field-Compression
@ -516,7 +516,7 @@ void processlcp(tunnelidt t, sessionidt s, uint8_t *p, uint16_t l)
case AckReceived: case AckReceived:
case Opened: case Opened:
LOG(3, s, t, "LCP: ConfigAck in state %s? Sending ConfigReq\n", ppp_state(session[s].ppp.lcp)); LOG(2, s, t, "LCP: ConfigAck in state %s? Sending ConfigReq\n", ppp_state(session[s].ppp.lcp));
if (session[s].ppp.lcp == Opened) if (session[s].ppp.lcp == Opened)
lcp_restart(s); lcp_restart(s);
@ -529,7 +529,7 @@ void processlcp(tunnelidt t, sessionidt s, uint8_t *p, uint16_t l)
break; break;
default: default:
LOG(3, s, t, "LCP: ignoring %s in state %s\n", ppp_code(*p), ppp_state(session[s].ppp.lcp)); LOG(2, s, t, "LCP: ignoring %s in state %s\n", ppp_code(*p), ppp_state(session[s].ppp.lcp));
} }
} }
else if (*p == ConfigReq) else if (*p == ConfigReq)
@ -687,7 +687,7 @@ void processlcp(tunnelidt t, sessionidt s, uint8_t *p, uint16_t l)
break; break;
default: default:
LOG(3, s, t, "LCP: ignoring %s in state %s\n", ppp_code(*p), ppp_state(session[s].ppp.lcp)); LOG(2, s, t, "LCP: ignoring %s in state %s\n", ppp_code(*p), ppp_state(session[s].ppp.lcp));
return; return;
} }
@ -780,7 +780,7 @@ void processlcp(tunnelidt t, sessionidt s, uint8_t *p, uint16_t l)
break; break;
case AckReceived: case AckReceived:
LOG(3, s, t, "LCP: ConfigNak in state %s? Sending ConfigReq\n", ppp_state(session[s].ppp.lcp)); LOG(2, s, t, "LCP: ConfigNak in state %s? Sending ConfigReq\n", ppp_state(session[s].ppp.lcp));
sendlcp(s, t, sess_local[s].lcp_authtype); sendlcp(s, t, sess_local[s].lcp_authtype);
break; break;
@ -790,7 +790,7 @@ void processlcp(tunnelidt t, sessionidt s, uint8_t *p, uint16_t l)
break; break;
default: default:
LOG(3, s, t, "LCP: ignoring %s in state %s\n", ppp_code(*p), ppp_state(session[s].ppp.lcp)); LOG(2, s, t, "LCP: ignoring %s in state %s\n", ppp_code(*p), ppp_state(session[s].ppp.lcp));
return; return;
} }
} }
@ -915,7 +915,7 @@ void processipcp(tunnelidt t, sessionidt s, uint8_t *p, uint16_t l)
case AckReceived: case AckReceived:
case Opened: case Opened:
LOG(3, s, t, "IPCP: ConfigAck in state %s? Sending ConfigReq\n", ppp_state(session[s].ppp.ipcp)); LOG(2, s, t, "IPCP: ConfigAck in state %s? Sending ConfigReq\n", ppp_state(session[s].ppp.ipcp));
sendipcp(s, t); sendipcp(s, t);
change_state(s, ipcp, RequestSent); change_state(s, ipcp, RequestSent);
break; break;
@ -925,7 +925,7 @@ void processipcp(tunnelidt t, sessionidt s, uint8_t *p, uint16_t l)
break; break;
default: default:
LOG(3, s, t, "IPCP: ignoring %s in state %s\n", ppp_code(*p), ppp_state(session[s].ppp.ipcp)); LOG(2, s, t, "IPCP: ignoring %s in state %s\n", ppp_code(*p), ppp_state(session[s].ppp.ipcp));
} }
} }
else if (*p == ConfigReq) else if (*p == ConfigReq)
@ -936,7 +936,7 @@ void processipcp(tunnelidt t, sessionidt s, uint8_t *p, uint16_t l)
int gotip = 0; int gotip = 0;
in_addr_t addr; in_addr_t addr;
LOG(4, s, t, "IPCP ConfigReq received\n"); LOG(3, s, t, "IPCP ConfigReq received\n");
while (length > 2) while (length > 2)
{ {
@ -1057,7 +1057,7 @@ void processipcp(tunnelidt t, sessionidt s, uint8_t *p, uint16_t l)
break; break;
default: default:
LOG(3, s, t, "IPCP: ignoring %s in state %s\n", ppp_code(*p), ppp_state(session[s].ppp.ipcp)); LOG(2, s, t, "IPCP: ignoring %s in state %s\n", ppp_code(*p), ppp_state(session[s].ppp.ipcp));
return; return;
} }
@ -1161,7 +1161,7 @@ void processipv6cp(tunnelidt t, sessionidt s, uint8_t *p, uint16_t l)
case AckReceived: case AckReceived:
case Opened: case Opened:
LOG(3, s, t, "IPV6CP: ConfigAck in state %s? Sending ConfigReq\n", ppp_state(session[s].ppp.ipv6cp)); LOG(2, s, t, "IPV6CP: ConfigAck in state %s? Sending ConfigReq\n", ppp_state(session[s].ppp.ipv6cp));
sendipv6cp(s, t); sendipv6cp(s, t);
change_state(s, ipv6cp, RequestSent); change_state(s, ipv6cp, RequestSent);
break; break;
@ -1171,7 +1171,7 @@ void processipv6cp(tunnelidt t, sessionidt s, uint8_t *p, uint16_t l)
break; break;
default: default:
LOG(3, s, t, "IPV6CP: ignoring %s in state %s\n", ppp_code(*p), ppp_state(session[s].ppp.ipv6cp)); LOG(2, s, t, "IPV6CP: ignoring %s in state %s\n", ppp_code(*p), ppp_state(session[s].ppp.ipv6cp));
} }
} }
else if (*p == ConfigReq) else if (*p == ConfigReq)
@ -1182,7 +1182,7 @@ void processipv6cp(tunnelidt t, sessionidt s, uint8_t *p, uint16_t l)
int gotip = 0; int gotip = 0;
uint8_t ident[8]; uint8_t ident[8];
LOG(4, s, t, "IPV6CP ConfigReq received\n"); LOG(3, s, t, "IPV6CP ConfigReq received\n");
while (length > 2) while (length > 2)
{ {
@ -1277,7 +1277,7 @@ void processipv6cp(tunnelidt t, sessionidt s, uint8_t *p, uint16_t l)
break; break;
default: default:
LOG(3, s, t, "IPV6CP: ignoring %s in state %s\n", ppp_code(*p), ppp_state(session[s].ppp.ipv6cp)); LOG(2, s, t, "IPV6CP: ignoring %s in state %s\n", ppp_code(*p), ppp_state(session[s].ppp.ipv6cp));
return; return;
} }
@ -1567,7 +1567,7 @@ void processccp(tunnelidt t, sessionidt s, uint8_t *p, uint16_t l)
case AckReceived: case AckReceived:
case Opened: case Opened:
LOG(3, s, t, "CCP: ConfigAck in state %s? Sending ConfigReq\n", ppp_state(session[s].ppp.ccp)); LOG(2, s, t, "CCP: ConfigAck in state %s? Sending ConfigReq\n", ppp_state(session[s].ppp.ccp));
sendccp(s, t); sendccp(s, t);
change_state(s, ccp, RequestSent); change_state(s, ccp, RequestSent);
break; break;
@ -1578,7 +1578,7 @@ void processccp(tunnelidt t, sessionidt s, uint8_t *p, uint16_t l)
break; break;
default: default:
LOG(3, s, t, "CCP: ignoring %s in state %s\n", ppp_code(*p), ppp_state(session[s].ppp.ccp)); LOG(2, s, t, "CCP: ignoring %s in state %s\n", ppp_code(*p), ppp_state(session[s].ppp.ccp));
} }
} }
else if (*p == ConfigReq) else if (*p == ConfigReq)
@ -1636,7 +1636,7 @@ void processccp(tunnelidt t, sessionidt s, uint8_t *p, uint16_t l)
break; break;
default: default:
LOG(3, s, t, "CCP: ignoring %s in state %s\n", ppp_code(*p), ppp_state(session[s].ppp.ccp)); LOG(2, s, t, "CCP: ignoring %s in state %s\n", ppp_code(*p), ppp_state(session[s].ppp.ccp));
return; return;
} }
@ -1674,11 +1674,12 @@ void processccp(tunnelidt t, sessionidt s, uint8_t *p, uint16_t l)
void sendchap(tunnelidt t, sessionidt s) void sendchap(tunnelidt t, sessionidt s)
{ {
uint8_t b[MAXCONTROL]; uint8_t b[MAXCONTROL];
uint16_t r = sess_local[s].radius; uint16_t r;
uint8_t *q; uint8_t *q;
CSTAT(sendchap); CSTAT(sendchap);
r = radiusnew(s);
if (!r) if (!r)
{ {
LOG(1, s, t, "No RADIUS to send challenge\n"); LOG(1, s, t, "No RADIUS to send challenge\n");