From: Brendan O'Dea Date: Tue, 3 May 2005 05:11:34 +0000 (+0000) Subject: Add a Cisco-Avpair with intercept details to RADIUS Start/Stop records X-Git-Tag: 2.2.1-2fdn3.1~19^2^2~1^2~218 X-Git-Url: http://git.sameswireless.fr/l2tpns.git/commitdiff_plain/a24e3186ff579269196081875e7e88dd738f7f9e?ds=sidebyside Add a Cisco-Avpair with intercept details to RADIUS Start/Stop records --- diff --git a/Changes b/Changes index b133dd7..ca2f6e0 100644 --- a/Changes +++ b/Changes @@ -1,4 +1,4 @@ -* Mon May 2 2005 Brendan O'Dea 2.1.0 +* Tue May 3 2005 Brendan O'Dea 2.1.0 - Add IPv6 support from Jonathan McDowell. - Add CHAP support from Jordan Hrycaj (work in progress). - Sanity check that cluster_send_session is not called from a child @@ -46,6 +46,8 @@ been bytes received from the modem (dead sessions were having the idle timeout reset by stray packets). - Use cli_error() for error messages and help. +- Add a Cisco-Avpair with intercept details to RADIUS Start/Stop + records. * Fri Dec 17 2004 Brendan O'Dea 2.0.13 - Better cluster master collision resolution: keep a counter of state diff --git a/l2tpns.spec b/l2tpns.spec index 5f21c08..b9b9955 100644 --- a/l2tpns.spec +++ b/l2tpns.spec @@ -43,5 +43,5 @@ rm -rf %{buildroot} %attr(644,root,root) /usr/share/man/man[58]/* %changelog -* Mon May 2 2005 Brendan O'Dea 2.1.0-1 +* Tue May 3 2005 Brendan O'Dea 2.1.0-1 - 2.1.0 release, see /usr/share/doc/l2tpns-2.1.0/Changes diff --git a/radius.c b/radius.c index 1ca4e66..90300dd 100644 --- a/radius.c +++ b/radius.c @@ -1,6 +1,6 @@ // L2TPNS Radius Stuff -char const *cvs_id_radius = "$Id: radius.c,v 1.27 2005-04-27 13:53:26 bodea Exp $"; +char const *cvs_id_radius = "$Id: radius.c,v 1.28 2005-05-03 05:11:34 bodea Exp $"; #include #include @@ -271,6 +271,18 @@ void radiussend(uint16_t r, uint8_t state) *(uint32_t *) (p + 2) = htonl(time(NULL) - session[s].opened); p += p[1]; } + + if (session[s].snoop_ip && session[s].snoop_port) + { + *p = 26; // vendor-specific + *(uint32_t *) (p + 2) = htonl(9); // Cisco + p[6] = 1; // Cisco-Avpair + p[7] = 2 + sprintf(p + 8, "intercept=%s:%d", + fmtaddr(session[s].snoop_ip, 0), session[s].snoop_port); + + p[1] = p[7] + 6; + p += p[1]; + } } } if (s)