Здравствуйте, Alan. Вы писали 2 февраля 2012 г., 9:20:10:
AD> The following reply was made to PR bin/164526; it has been noted by GNATS. AD> From: Alan DeKok <al...@deployingradius.com> AD> To: =?UTF-8?B?0JrQvtC90YzQutC+0LIg0JXQstCz0LXQvdC40Lk=?= AD> <kes-...@yandex.ru>, AD> FreeRadius users mailing list <freeradius-us...@lists.freeradius.org> AD> Cc: Jilles Tjoelker <jil...@stack.nl>, AD> firebird-de...@lists.sourceforge.net, bug-follo...@freebsd.org AD> Subject: Re: bin/164526: kill(1) can not kill process despite on -KILL AD> Date: Thu, 02 Feb 2012 08:13:54 +0100 AD> РљРѕРЅСЊРєРѕРІ Евгений wrote: >> repeated again: >> bug is repeateable: >> 1. radiusd + mod_perl + example.pl(it is connects to FireBird) + AD> AD> Why? FreeRADIUS has native support for all major SQL servers. AD> There's no need to use a Perl plugin. AD> >> FireBIrd >> 2. restart firebird >> 3. try to restart radiusd >> 4. process in fall into STOP state AD> AD> You've built a system which has a lot of components. The problem AD> could be anywhere. AD> AD> I'll note that I've *never* seen this problem when using the native AD> SQL plugins which are shipped with FreeRADIUS. AD> AD> Alan DeKok. sorry: mod_perl => rlm_perl which configured as: cat modules/perl perl { module = ${confdir}/example.pl } cat sites/default ...... authorize { ... mschap perl } ... accounting { detail perl } and in example.pl do: cat example.pl # Function to handle accounting sub accounting { my $result; doLog( L_INFO, "$dbh_fb: start accounting" ); $result= RLM_MODULE_OK; # $RAD_REPLY{'mpd-Update-Interim-Interval'} = '60'; # $RAD_REPLY{'mpd-Drop-User'} = 'Yes';. &db_logAttributes("accounting"); &updateOnline(); if( changePacket( $RAD_REQUEST{'User-Name'} ) ) { $RAD_REPLY{'mpd-drop-user'}= 1; } doLog( L_INFO, "$dbh_fb: finish accounting" ); if ($result) {return $result; }... return RLM_MODULE_REJECT; } ...... #------------------------ UPDATE ONLINE sub updateOnline{ #!my ($sql, $query, $packet); $_= $RAD_REQUEST{'Acct-Status-Type'}; SWITCH: { /Interim-Update|Stop/ && do { my $termCause= $RAD_REQUEST{'Acct-Status-Type'} eq 'Stop' ? $RAD_REQUEST{'Acct-Terminate-Cause'} || 'User-Request' : 'OnLine'; my $trafIn= $RAD_REQUEST{'Acct-Input-Octets'} + 2**32*$RAD_REQUEST{'Acct-Input-Gigawords'}; my $trafOut= $RAD_REQUEST{'Acct-Output-Octets'} + 2**32*$RAD_REQUEST{'Acct-Output-Gigawords'}; doLog( L_INFO, "$dbh_fb: update online status for '$RAD_REQUEST{'User-Name'}'" ); $dbh_fb->do( $QR_UPDATE_ONLINE_STATUS, undef,. $RAD_REQUEST{'User-Name'} ,$RAD_REQUEST{'Acct-Session-Time'} ,$RAD_REQUEST{'NAS-Port'} ,$RAD_REQUEST{'Calling-Station-Id'} ,$RAD_REQUEST{'NAS-IP-Address'} ,$trafIn ,$trafOut ,$termCause ,$RAD_REQUEST{'Framed-IP-Address'} ,$RAD_REQUEST{'Acct-Unique-Session-Id'} ) or doLog( L_INFO, "DO UPDATE ONLINE FB $DBI::errstr" ); ...... } I just connect to DB and update session info. But maybe this may lock system? sub doLog { my( $level, $message )= @_; my $datetime= localtime(); radiusd::radlog( $level, $message ); `echo "$datetime: $message" >> "/var/log/radius/radius.kes.log"`; } -- С уважением, Коньков mailto:kes-...@yandex.ru _______________________________________________ freebsd-bugs@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-bugs To unsubscribe, send any mail to "freebsd-bugs-unsubscr...@freebsd.org"