use vars qw( @part_export );
use subs qw(myshutdown);
use POSIX qw(:sys_wait_h);
-use IO::File;
+#use IO::File;
use FS::Daemon qw(daemonize1 drop_root logfile daemonize2 sigint sigterm);
use FS::UID qw(adminsuidsetup); #forksuidsetup driver_name dbh myconnect);
use FS::Record qw(qsearch); # qsearchs);
adminsuidsetup $user;
-logfile( "/usr/local/etc/freeside/sqlradius-radacctd-log.". $FS::UID::datasrc );
+logfile( "%%%FREESIDE_LOG%%%/sqlradius-radacctd-log.". $FS::UID::datasrc );
daemonize2();
#--
+#don't just look for ->can('usage_sessions'), we're sqlradius-specific
+# (radiator is supposed to be setup with a radacct table)
+
@part_export =
qsearch('part_export', { 'exporttype' => 'sqlradius' } );
push @part_export,
qsearch('part_export', { 'exporttype' => 'sqlradius_withdomain' } );
+push @part_export,
+ qsearch('part_export', { 'exporttype' => 'radiator' } );
@part_export = grep { ! $_->option('ignore_accounting') } @part_export;
-die "no sqlradius or sqlradius_withdomain exports without ignore_accounting"
+die "no sqlradius, sqlradius_withdomain or radiator exports without".
+ " ignore_accounting"
unless @part_export;
while (1) {
=head1 DESCRIPTION
-Imports records from an the SQL radacct tables of all sqlradius and
-sqlradius_withdomain exports (except those with the ignore_accounting flag) and
-updates the svc_acct.seconds for each account. Runs as a daemon and updates
-the database in real-time.
+Imports records from an the SQL radacct tables of all sqlradius,
+sqlradius_withdomain and radiator exports (except those with the
+ignore_accounting flag) and updates the svc_acct.seconds for each account.
+Runs as a daemon and updates the database in real-time.
B<username> is a username added by freeside-adduser.
If you want to ignore the existing accountg records, also do:
-UPDATE TABLE radacct SET FreesideStatus = 'done' WHERE FreesideStatus IS NULL;
+UPDATE radacct SET FreesideStatus = 'done' WHERE FreesideStatus IS NULL;
=head1 SEE ALSO