]> git.ipfire.org Git - people/pmueller/ipfire-2.x.git/blobdiff - html/cgi-bin/captive.cgi
Merge branch 'next'
[people/pmueller/ipfire-2.x.git] / html / cgi-bin / captive.cgi
index b33287dd4c8c134b69e9fe08a41105ed27c6fa58..8204eb7b3b87e7dc0e5079513564913eea876917 100755 (executable)
@@ -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]));