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.
---
html/cgi-bin/captive.cgi | 23 +++++++++++++++++++++--
1 file changed, 21 insertions(+), 2 deletions(-)
diff --git a/html/cgi-bin/captive.cgi b/html/cgi-bin/captive.cgi
index b33287dd4..8204eb7b3 100755
--- a/html/cgi-bin/captive.cgi
+++ b/html/cgi-bin/captive.cgi
@@ -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]));
--
2.17.1