(RADIATOR) Event-Timestamp patch
Hugh Irvine
hugh at open.com.au
Thu Oct 24 01:11:44 CDT 2002
Hi Mike -
I don't agree with changing Radiator's Timestamp.
If there is an Event-Timestamp in a request and someone wants to use
it, it is simple enough to use special characters (%{Event-Timestamp}),
and/or write a hook to make whatever changes are wanted/needed on a
local basis.
cheers
Hugh
On Thursday, October 24, 2002, at 10:11 AM, Mike McCauley wrote:
> Anyone else have any views about this?
>
>
>
> ---------- Forwarded Message ----------
>
> Subject: BOUNCE radiator at open.com.au: Non-member submission from
> [Jerome
> Fleury <jerome.fleury at fr.tiscali.com>]
> Date: Wed, 23 Oct 2002 04:09:37 -0500
> From: owner-radiator at open.com.au
> To: radiator-approval at open.com.au
>
>> From mikem at server1.open.com.au Wed Oct 23 04:09:36 2002
> Received: from mail.libertysurf.net (mail.libertysurf.net
> [213.36.80.91])
> by server1.open.com.au (8.11.0/8.11.0) with ESMTP id g9N99ZC15723
> for <radiator at open.com.au>; Wed, 23 Oct 2002 04:09:36 -0500
> Received: from sauron.eng.freesbee.net (212.129.4.220) by
> mail.libertysurf.net (6.5.026) id 3DB4DCD800089BBD for
> radiator at open.com.au;
> Wed, 23 Oct 2002 16:03:19 +0200 Date: Wed, 23 Oct 2002 16:03:18 +0200
> From: Jerome Fleury <jerome.fleury at fr.tiscali.com>
> To: radiator at open.com.au
> Subject: Event-Timestamp patch
> Message-ID: <44230000.1035381798 at sauron.admin.in.none.net>
> X-Mailer: Mulberry/3.0.0a4 (SunOS/SPARC)
> MIME-Version: 1.0
> Content-Type: multipart/signed; micalg=pgp-sha1;
> protocol="application/pgp-signature";
> boundary="==========46901052=========="
>
> --==========46901052==========
> Content-Type: text/plain; charset=us-ascii; format=flowed
> Content-Transfer-Encoding: quoted-printable
> Content-Disposition: inline
>
> Hello there,
>
> I provide here a small (but useful) patch. This one allows to use
> the=20
> Event-Timestamp accounting attribute sent by some NAS (especially
> Cisco=20
> ones in later releases) instead of having to calculate it.
> (=3Drecvtime -=20
> acct_delay)
> This patch performs a small check: if the calculated timestamp and the
> NAS=20
> timestamp differ for more than 300s (this is arbitrary), then we
> assume=20
> that the server and the NAS are not synchronized, so it fallback to
> the=20
> calculated timestamp (default).
>
> Why did we use this ? Because the timestamp sent by the NAS looks much
> more =
>
> reliable than the calculated one. As of a consequence, it performs
> better=20
> in duplicate finding.
>
> This code should probably be cleaned, maybe "config-variabled", but I
> hope=20
> it will be integrated in futures releases.
>
> --
> Jerome Fleury Tiscali/LibertySurf/WC
> Network Engineer Tel/Fax: +33 1 45082314
>
>
> --------------------------------------------
> *** Handler.pm.bak Mon Oct 21 12:34:37 2002
> --- Handler.pm Wed Oct 23 12:46:20 2002
> ***************
> *** 204,214 ****
> {
> # Add a pseudo attribute for the Timestamp
> # (adjusted by Delay-Time)
> # Some modules (AuthSQL) and logfile scripts rely on it
> ! $p->add_attr('Timestamp',
> ! $p->{RecvTime}
> ! - int=20
> $p->getAttrByNum($Radius::Radius::ACCT_DELAY_TIME));
>
> # Log the packet
> my $status_type =3D $p->getAttrByNum
> ($Radius::Radius::ACCT_STATUS_TYPE);
> --- 204,231 ----
> {
> # Add a pseudo attribute for the Timestamp
> # (adjusted by Delay-Time)
> # Some modules (AuthSQL) and logfile scripts rely on it
> ! # patch by Jerome Fleury <jerome.fleury at fr.tiscali.com>:
> ! # rely on Event_Timestamp attribute if present
> ! my $timestamp;
> ! $timestamp =3D $p->{RecvTime} - int=20
> $p->getAttrByNum($Radius::Radius::ACCT_DELAY_TIME);
> ! # this patch uses Event-Timestamp if it exists
> ! if (defined=20
> $p->getAttrByNum($Radius::Radius::ACCT_EVENT_TIMESTAMP)) {
> ! # we use arbitrary 300s of clock difference to check=20
> attribute reliability
> ! if (abs($timestamp -=20
> $p->getAttrByNum($Radius::Radius::ACCT_EVENT_TIMESTAMP) > 300)) {
> ! # NAS clock is not synchronized with the
> server,=20
> let's use server timestamp, log a warning
> ! $self->log($main::LOG_WARNING, "$nas_id clock
> not=20
> synchronized with server!");
> ! $p->add_attr('Timestamp', $timestamp);
> ! }
> ! else {
> ! # Event_Timestamp looks correct, let's use it
> ! $p->add_attr('Timestamp',=20
> $p->getAttrByNum($Radius::Radius::ACCT_EVENT_TIMESTAMP));
> ! }
> ! }
> ! # we don't have Event_Timestamp attribute
> ! else { $p->add_attr('Timestamp', $timestamp); }
> !
>
> # Log the packet
> my $status_type =3D $p->getAttrByNum
> ($Radius::Radius::ACCT_STATUS_TYPE);
>
>
> -------------------------------------------------------
> *** Radius.pm.bak Mon Oct 21 12:33:55 2002
> --- Radius.pm Mon Oct 21 12:34:25 2002
> ***************
> *** 114,117 ****
> --- 114,118 ----
> $Radius::Radius::ACCT_OUTPUT_PACKETS =3D 48;
> $Radius::Radius::ACCT_TERMINATE_CAUSE =3D 49;
> + $Radius::Radius::ACCT_EVENT_TIMESTAMP =3D 55;
> $Radius::Radius::CHAP_CHALLENGE =3D 60;
> $Radius::Radius::NAS_PORT_TYPE =3D 61;
>
>
>
> --==========46901052==========
> Content-Type: application/pgp-signature
> Content-Transfer-Encoding: 7bit
>
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1.0.6 (SunOS)
> Comment: For info see http://www.gnupg.org
>
> iD8DBQE9tqwnnLJOfUlJE3wRAtVgAJ43LNxuEMIkHOFVTTUjSAn/5Z2RGACeMZlz
> enLHsRQjIBxYnQcPvRHj8aA=
> =E7Pt
> -----END PGP SIGNATURE-----
>
> --==========46901052==========--
>
> -------------------------------------------------------
>
> --
> Mike McCauley mikem at open.com.au
> Open System Consultants Pty. Ltd Unix, Perl, Motif, C++, WWW
> 24 Bateman St Hampton, VIC 3188 Australia http://www.open.com.au
> Phone +61 3 9598-0985 Fax +61 3 9598-0955
>
> Radiator: the most portable, flexible and configurable RADIUS server
> anywhere. SQL, proxy, DBM, files, LDAP, NIS+, password, NT, Emerald,
> Platypus, Freeside, TACACS+, PAM, external, Active Directory, EAP, TLS,
> TTLS etc on Unix, Windows, MacOS etc.
>
> ===
> Archive at http://www.open.com.au/archives/radiator/
> Announcements on radiator-announce at open.com.au
> To unsubscribe, email 'majordomo at open.com.au' with
> 'unsubscribe radiator' in the body of the message.
>
>
NB: I am travelling this week, so there may be delays in our
correspondence.
--
Radiator: the most portable, flexible and configurable RADIUS server
anywhere. Available on *NIX, *BSD, Windows 95/98/2000, NT, MacOS X.
-
Nets: internetwork inventory and management - graphical, extensible,
flexible with hardware, software, platform and database independence.
===
Archive at http://www.open.com.au/archives/radiator/
Announcements on radiator-announce at open.com.au
To unsubscribe, email 'majordomo at open.com.au' with
'unsubscribe radiator' in the body of the message.
More information about the radiator
mailing list