/usr/local/captiveportal/index.php 를 뜯어본 결과
아래의 로그인 단계를 확인했다.
로그인 실패 후 - 이전에 해야 하는게 맞는데 이전 로직이 너무 복잡해서 실패 후 데이터 허용량의 초과 여부를 확인해서 표시해 주는로그인 창이다.
$use_file = fopen("/var/log/radacct/datacounter/monthly/used-octets-$user", "r");
$max_file = fopen("/var/log/radacct/datacounter/monthly/max-octets-$user", "r");
if($use_file && $max_file){
$max_use = fgets($max_file);
$usage = $max_use-fgets($use_file);
if($usage<=0){
$usage = number_format(abs($usage)/1048576, 2, '.',',');
$max_usage = number_format(abs($max_use)/1048576, 2, '.',',');
$replymsg = getText("Data usage exceeds $usage MBytes of total $max_usage MBytes allowed. Request or expand data to use internet");
fclose($use_file);
fclose($max_file);
}
}
else {
$replymsg = getText("Login ID/PW was not valid.. check ID/PW");
}
}
captiveportal_logportalauth($user, $clientmac, $clientip, $auth_result['login_status'], $replymsg);
/* Radius MAC authentication. */
if ($context === 'radmac' && $type !== 'redir' && !isset($cpcfg['radmac_fallback'])) {
.....
captiveportal_logportalauth($user, $clientmac, $clientip, $auth_result['login_status'], $replymsg);
/* Radius MAC authentication. */
if ($context === 'radmac' && $type !== 'redir' && !isset($cpcfg['radmac_fallback'])) {
echo $replymsg;
} else {
/*portal_reply_page($redirurl, $type, $replymsg); */ 로그인 후 리디렉션 되면 바로 로그인이 안되고 반드시 로그인 화면으로 돌려야만 로긴 가능한 것을 바로 로그인 화면으로 리디렉션 되고 메시지가 뜨도록 바꿈.
portal_reply_page($redirurl, $type, $replymsg, $clientmac, $clientip);