add Framed-Route entries to RADIUS records
This commit is contained in:
parent
4b3b34b994
commit
0ef5685447
3 changed files with 28 additions and 3 deletions
3
Changes
3
Changes
|
|
@ -1,6 +1,7 @@
|
||||||
* Tue Oct 18 2005 Brendan O'Dea <bod@optus.net> 2.1.10
|
* Wed Oct 19 2005 Brendan O'Dea <bod@optus.net> 2.1.10
|
||||||
- Add scripts/l2tpns-capture.
|
- Add scripts/l2tpns-capture.
|
||||||
- Fix LCP Echo frequency.
|
- Fix LCP Echo frequency.
|
||||||
|
- Add Framed-Route entries to RADIUS records.
|
||||||
|
|
||||||
* Tue Oct 11 2005 Brendan O'Dea <bod@optus.net> 2.1.9
|
* Tue Oct 11 2005 Brendan O'Dea <bod@optus.net> 2.1.9
|
||||||
- Fix Calling-Station-Id in RADIUS accounting records (Slobodan Tomic).
|
- Fix Calling-Station-Id in RADIUS accounting records (Slobodan Tomic).
|
||||||
|
|
|
||||||
|
|
@ -43,5 +43,5 @@ rm -rf %{buildroot}
|
||||||
%attr(644,root,root) /usr/share/man/man[58]/*
|
%attr(644,root,root) /usr/share/man/man[58]/*
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
* Tue Oct 18 2005 Brendan O'Dea <bod@optus.net> 2.1.10-1
|
* Wed Oct 19 2005 Brendan O'Dea <bod@optus.net> 2.1.10-1
|
||||||
- 2.1.10 release, see /usr/share/doc/l2tpns-2.1.10/Changes
|
- 2.1.10 release, see /usr/share/doc/l2tpns-2.1.10/Changes
|
||||||
|
|
|
||||||
26
radius.c
26
radius.c
|
|
@ -1,6 +1,6 @@
|
||||||
// L2TPNS Radius Stuff
|
// L2TPNS Radius Stuff
|
||||||
|
|
||||||
char const *cvs_id_radius = "$Id: radius.c,v 1.44 2005-10-11 09:04:53 bodea Exp $";
|
char const *cvs_id_radius = "$Id: radius.c,v 1.45 2005-10-19 03:09:30 bodea Exp $";
|
||||||
|
|
||||||
#include <time.h>
|
#include <time.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
|
@ -326,6 +326,30 @@ void radiussend(uint16_t r, uint8_t state)
|
||||||
*(uint32_t *) (p + 2) = htonl(session[s].ip);
|
*(uint32_t *) (p + 2) = htonl(session[s].ip);
|
||||||
p += p[1];
|
p += p[1];
|
||||||
}
|
}
|
||||||
|
if (s && session[s].route[0].ip)
|
||||||
|
{
|
||||||
|
int r;
|
||||||
|
for (r = 0; s && r < MAXROUTE && session[s].route[r].ip; r++)
|
||||||
|
{
|
||||||
|
int width = 32;
|
||||||
|
if (session[s].route[r].mask)
|
||||||
|
{
|
||||||
|
int mask = session[s].route[r].mask;
|
||||||
|
while (!(mask & 1))
|
||||||
|
{
|
||||||
|
width--;
|
||||||
|
mask >>= 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
*p = 22; // Framed-Route
|
||||||
|
p[1] = sprintf((char *) p + 2, "%s/%d %s 1",
|
||||||
|
fmtaddr(htonl(session[s].route[r].ip), 0),
|
||||||
|
width, fmtaddr(htonl(session[s].ip), 1)) + 2;
|
||||||
|
|
||||||
|
p += p[1];
|
||||||
|
}
|
||||||
|
}
|
||||||
if (*session[s].called)
|
if (*session[s].called)
|
||||||
{
|
{
|
||||||
*p = 30; // called
|
*p = 30; // called
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue