diff options
-rw-r--r-- | etc/inc/captiveportal.inc | 12 | ||||
-rw-r--r-- | etc/inc/filter.inc | 6 | ||||
-rwxr-xr-x | usr/local/www/services_captiveportal.php | 15 |
3 files changed, 17 insertions, 16 deletions
diff --git a/etc/inc/captiveportal.inc b/etc/inc/captiveportal.inc index 786250b..a4d7186 100644 --- a/etc/inc/captiveportal.inc +++ b/etc/inc/captiveportal.inc @@ -46,9 +46,7 @@ require_once("radius_accounting.inc") ; function captiveportal_configure() { global $config, $g; - if (isset($config['captiveportal']['enable']) && - (($config['captiveportal']['interface'] == "lan") || - isset($config['interfaces'][$config['captiveportal']['interface']]['enable']))) { + if (isset($config['captiveportal']['enable'])) { if($g['booting']) echo "Starting captive portal... "; @@ -154,6 +152,10 @@ EOD; mwexec("/usr/local/sbin/mini_httpd -a -M 0 -u root -maxproc 16" . " -p 8000 -i {$g['varrun_path']}/mini_httpd.cp.pid"); + $fd = fopen("/tmp/captiveportal.txt", "w"); + fwrite($fd, "/usr/local/sbin/mini_httpd -a -M 0 -u root -maxproc 16 -p 8000 -i {$g['varrun_path']}/mini_httpd.cp.pid"); + fclose($fd); + /* fire up another one for HTTPS if requested */ if (isset($config['captiveportal']['httpslogin']) && $config['captiveportal']['certificate'] && $config['captiveportal']['private-key']) { @@ -178,8 +180,8 @@ EOD; } /* start pruning process (interval = 60 seconds) */ - mwexec("/usr/local/bin/minicron 60 {$g['varrun_path']}/minicron.pid " . - "/etc/rc.prunecaptiveportal"); + //mwexec("/usr/local/bin/minicron 60 {$g['varrun_path']}/minicron.pid " . + // "/etc/rc.prunecaptiveportal"); /* generate passthru mac database */ captiveportal_passthrumac_configure() ; diff --git a/etc/inc/filter.inc b/etc/inc/filter.inc index 3bdfd50..c318dc1 100644 --- a/etc/inc/filter.inc +++ b/etc/inc/filter.inc @@ -1091,9 +1091,11 @@ EOD; if(isset($config['captiveportal']['enable'])) { $natrules .= "# Captive Portal\n"; $cp_interface = filter_translate_type_to_real_interface($config['captiveportal']['interface']); - $lan_ip = $config['interfaces']['lan']['ipaddr']; + $cp_ip = $config['interfaces'][$config['captiveportal']['interface']]['ipaddr']; + if($cp_ip == "dhcp") + $cp_ip = find_interface_ip($cp_interface); $natrules .= "no rdr on {$cp_interface} proto tcp from <captiveportal> to any \n"; - $natrules .= "rdr on " . $cp_interface . " proto tcp from any to any port { 80 443 } -> {$lan_ip} port 8000\n\n"; + $natrules .= "rdr on {$cp_interface} proto tcp from any to any port { 80 443 } -> {$cp_ip} port 8000\n\n"; } return $natrules; diff --git a/usr/local/www/services_captiveportal.php b/usr/local/www/services_captiveportal.php index e15b2a4..992aeb4 100755 --- a/usr/local/www/services_captiveportal.php +++ b/usr/local/www/services_captiveportal.php @@ -307,16 +307,13 @@ function enable_change(enable_change) { <td width="78%" class="vtable"> <select name="cinterface" class="formfld" id="cinterface"> <?php - - if(isset($config['system']['developer'])) $interfaces = array('lan' => 'LAN', 'wan' => 'WAN'); - else - $interfaces = array('lan' => 'LAN'); - for ($i = 1; isset($config['interfaces']['opt' . $i]); $i++) { - if (isset($config['interfaces']['opt' . $i]['enable'])) - $interfaces['opt' . $i] = $config['interfaces']['opt' . $i]['descr']; - } - foreach ($interfaces as $iface => $ifacename): ?> + for ($i = 1; isset($config['interfaces']['opt' . $i]); $i++) { + if (isset($config['interfaces']['opt' . $i]['enable'])) + $interfaces['opt' . $i] = $config['interfaces']['opt' . $i]['descr']; + } + foreach ($interfaces as $iface => $ifacename): + ?> <option value="<?=$iface;?>" <?php if ($iface == $pconfig['cinterface']) echo "selected"; ?>> <?=htmlspecialchars($ifacename);?> </option> |