mirror of
https://github.com/vincentmli/bpfire.git
synced 2026-04-16 14:03:00 +02:00
BUG12245: captive portal - clients are not automatically removed
With this patch the clients are updated and those who are expired get deleted from the hash. In addition the table of active clients is now sorted. Signed-off-by: Arne Fitzenreiter <arne_f@ipfire.org>
This commit is contained in:
committed by
Arne Fitzenreiter
parent
1a23cf7324
commit
650aac182e
@@ -514,6 +514,25 @@ END
|
||||
}
|
||||
}
|
||||
|
||||
sub cleanup_expired_coupons
|
||||
{
|
||||
my $acttime=time();
|
||||
&General::readhasharray($clients, \%clientshash) if (-e $clients);
|
||||
foreach my $key (keys %clientshash) {
|
||||
|
||||
#calculate endtime from clientshash
|
||||
my $endtime;
|
||||
if ($clientshash{$key}[3] > '0'){
|
||||
$endtime = $clientshash{$key}[2]+$clientshash{$key}[3];
|
||||
if ($acttime > $endtime) {
|
||||
delete $clientshash{$key};
|
||||
}
|
||||
}
|
||||
}
|
||||
#write back hash
|
||||
&General::writehasharray("$clients", \%clientshash);
|
||||
}
|
||||
|
||||
sub show_coupons() {
|
||||
&General::readhasharray($coupons, \%couponhash) if (-e $coupons);
|
||||
|
||||
@@ -601,9 +620,9 @@ sub show_clients() {
|
||||
<th align='center' width='5%'>$Lang::tr{'delete'}</th>
|
||||
</tr>
|
||||
END
|
||||
|
||||
&cleanup_expired_coupons();
|
||||
&General::readhasharray($clients, \%clientshash) if (-e $clients);
|
||||
foreach my $key (keys %clientshash) {
|
||||
foreach my $key (sort {$clientshash{$a}[2] <=> $clientshash{$b}[2]} keys %clientshash) {
|
||||
#calculate time from clientshash (starttime)
|
||||
my $starttime = sub{sprintf '%02d.%02d.%04d %02d:%02d', $_[3], $_[4]+1, $_[5]+1900, $_[2], $_[1] }->(localtime($clientshash{$key}[2]));
|
||||
|
||||
|
||||
Reference in New Issue
Block a user