sub post_auth { my $gn = $RAD_REQUEST{'User-Name'}; if ($RAD_REQUEST{'User-Name'} =~ /^[Gg][Aa][Ss][Tt][0-9]+$/) { my $filename = "/usr/local/etc/raddb/guests/guest_$gn.txt"; my $currtime = time(); my $maxtime = $currtime + 3600 * 8; # 8 hours if (open (my $fh, '<:encoding(UTF-8)', $filename)) { while (my $row = <$fh>) { chomp($row); $maxtime = $row; } close $fh; } else { &radiusd::radlog(L_AUTH, "New guest user $gn"); open (my $wfh, '>:encoding(UTF-8)', $filename) or die ("Unable to write to $filename"); print $wfh $maxtime; close $wfh; } if ($maxtime > time()) { &radiusd::radlog(L_AUTH, "Accepting guest user $gn due $maxtime > $currtime"); return RLM_MODULE_OK; } else { &radiusd::radlog(L_AUTH, "Rejecting guest user $gn due $maxtime < $currtime"); return RLM_MODULE_REJECT; } #$RAD_REPLY{'Tunnel-Medium-Type'} = "IEEE-802"; } else { &radiusd::radlog(L_AUTH, "User $gn is not a guest user. Allowing."); } return RLM_MODULE_OK; }