* Add Service-Type in user_edit.attrs
* In user_finger page if $user is NULL then set it to
* Add 3 more help pages from Stadler Karel <Karel.Stadler@psi.ch> for Service-Type,Framed-Protocol and Filter-ID
+* Make all scripts use the mysql binary instead of DBI and make the sql password even if it is empty
+* Make log_badlogins work with usernames containing spaces
Ver 1.62:
* Remove one sql query from user_admin which was not needed.
* Instead of a query like "LIKE 'YYYY-MM-DD%'" use "AcctStopTime >= 'YYYY-MM-DD 00:00:00 AND AcctStopTime
# Clean stale open sessions from the radacct table.
# we only clean up sessions which are older than $back_days
#
-use DBI;
use POSIX;
$conf=shift||'/usr/local/dialup_admin/conf/admin.conf';
+$mysql='/usr/local/mysql/bin/mysql';
$back_days = 35;
open CONF, "<$conf"
}
close CONF;
+$sql_password = ($sql_password == '') ? '' : "-p $sql_password";
+
($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime;
$date = POSIX::strftime("%Y-%m-%d %T",$sec,$min,$hour,($mday - $back_days),$mon,$year,$wday,$yday,$isdst);
print "$date\n";
-$dbh = DBI->connect("DBI:mysql:$sql_database:$sql_server","$sql_username","$sql_password");
-$dbh->do("DELETE FROM $sql_accounting_table WHERE AcctStopTime = '0' AND AcctStartTime < '$date';");
-$dbh->disconnect();
+$query = "DELETE FROM $sql_accounting_table WHERE AcctStopTime = '0' AND AcctStartTime < '$date';";
+print "$query\n";
+open TMP, ">/tmp/clean_radacct.query"
+ or die "Could not open tmp file\n";
+print TMP $query;
+close TMP;
+`$mysql -h $sql_server -u $sql_username $sql_password $sql_database </tmp/clean_radacct.query`;
($year,$mon,$mday,$hour,$min,$sec)=UnixDate($date2,'%Y','%m','%d','%H','%M','%S');
}
$time = "$year-$mon-$mday $hour:$min:$sec";
- if (/\[([\w\-\.\!\@]+?)\]\s+\(from (.+?)\)/){
+ if (/\[([\w\-\.\!\@\s]+?)\]\s+\(from (.+?)\)/){
$user = $1;
($nas,$port,$caller) = (split /\s+/,$2)[1,3,5];
}
- elsif (/\[([\w\-\.\!\@]+?)\/.+?\]\s+\(from (.+?)\)/){
+ elsif (/\[([\w\-\.\!\@\s]+?)\/.+?\]\s+\(from (.+?)\)/){
$user = $1;
($nas,$port,$caller) = (split /\s+/,$2)[1,3,5];
}
$caller='' if (!defined($caller));
- $user =~s/[^\w\-\.\d\!\@]//g;
+ $user =~s/[^\w\-\.\d\!\@\s]//g;
$nas =~s/[^\w\.]//g;
if ($nas ne 'localhost' && $nas !~ /\.$domain$/){
$nas .= ".$domain";
}
close CONF;
+$sql_password = ($sql_password == '') ? '' : "-p $sql_password";
+
($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime;
if ($mday == 1){
$mon--;
print TMP $query1;
print TMP $query2;
close TMP;
-`$mysql -h $sql_server -u $sql_username -p$sql_password $sql_database </tmp/tot_stats.query`;
+`$mysql -h $sql_server -u $sql_username $sql_password $sql_database </tmp/tot_stats.query`;
}
close CONF;
+$sql_password = ($sql_password == '') ? '' : "-p $sql_password";
+
($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime;
$date_start = POSIX::strftime("%Y-%m-%d %T",0,0,0,($mday - 1),$mon,$year,$wday,$yday,$isdst);
$date_small_start = POSIX::strftime("%Y-%m-%d",0,0,0,($mday - 1),$mon,$year,$wday,$yday,$isdst);
or die "Could not open tmp file\n";
print TMP $query;
close TMP;
-`$mysql -h $sql_server -u $sql_username -p$sql_password $sql_database </tmp/tot_stats.query`;
+`$mysql -h $sql_server -u $sql_username $sql_password $sql_database </tmp/tot_stats.query`;
# Delete sessions from the radacct table which are older than
# $back_days
#
-use DBI;
use POSIX;
$conf=shift||'/usr/local/dialup_admin/conf/admin.conf';
+$mysql='/usr/local/mysql/bin/mysql';
$back_days = 90;
open CONF, "<$conf"
}
close CONF;
+$sql_password = ($sql_password == '') ? '' : "-p $sql_password";
+
($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime;
$date = POSIX::strftime("%Y-%m-%d %T",$sec,$min,$hour,($mday - $back_days),$mon,$year,$wday,$yday,$isdst);
print "$date\n";
-$dbh = DBI->connect("DBI:mysql:$sql_database:$sql_server","$sql_username","$sql_password");
-$dbh->do("LOCK TABLES $sql_accounting_table WRITE;DELETE FROM $sql_accounting_table WHERE AcctStopTime < '$date';UNLOCK TABLES;");
-$dbh->disconnect();
+$query = "LOCK TABLES $sql_accounting_table WRITE;";
+$query .= "DELETE FROM $sql_accounting_table WHERE AcctStopTime < '$date';";
+$query .= "UNLOCK TABLES;";
+print "$query\n";
+open TMP, ">/tmp/truncate_radacct.query"
+ or die "Could not open tmp file\n";
+print TMP $query;
+close TMP;
+`$mysql -h $sql_server -u $sql_username $sql_password $sql_database </tmp/truncate_radacct.query`;