diff --git a/src/etc/inc/config.console.inc b/src/etc/inc/config.console.inc index 9e171b910..5141f5692 100644 --- a/src/etc/inc/config.console.inc +++ b/src/etc/inc/config.console.inc @@ -149,11 +149,11 @@ EOD; } } while (!$lanif); - /* optional interfaces */ - $optif = array(); - $i = 0; + while ($lanif != '') { + /* optional interfaces */ + $optif = array(); + $i = 0; - if ($lanif != '') { while (1) { if ($optif[$i]) $i++; @@ -188,6 +188,8 @@ EOD; /* check for double assignments */ $ifarr = array_merge(array($lanif, $wanif), $optif); + $again = false; + for ($i = 0; $i < (count($ifarr)-1); $i++) { for ($j = ($i+1); $j < count($ifarr); $j++) { if ($ifarr[$i] == $ifarr[$j]) { @@ -196,12 +198,16 @@ EOD; Error: you cannot assign the same interface name twice! EOD; - fclose($fp); - return false; + + $again = true; } } } + if ($again) { + continue; + } + echo "\n" . gettext("The interfaces will be assigned as follows:") . "\n\n"; echo "WAN -> " . $wanif . "\n"; @@ -221,135 +227,90 @@ EOD; $key = 'y'; echo $key . PHP_EOL; } + + if (in_array($key, array('y', 'Y'))) { + break; + } } - if (!$interactive) { - $key = 'y'; + if ($lanif) { + if (!is_array($config['interfaces']['lan'])) { + $config['interfaces']['lan'] = array(); + } + $config['interfaces']['lan']['if'] = $lanif; + $config['interfaces']['lan']['enable'] = true; + } else { + if(isset($config['interfaces']['lan']['if'])) + mwexec("/sbin/ifconfig " . $config['interfaces']['lan']['if'] . " delete"); + if(isset($config['interfaces']['lan'])) + unset($config['interfaces']['lan']); + if(isset($config['dhcpd']['lan'])) + unset($config['dhcpd']['lan']); + if(isset($config['interfaces']['lan']['if'])) + unset($config['interfaces']['lan']['if']); + if(isset($config['interfaces']['wan']['blockpriv'])) + unset($config['interfaces']['wan']['blockpriv']); + if(isset($config['nat'])) + unset($config['nat']); } - if (in_array($key, array('y', 'Y'))) { - if ($lanif) { - if (!is_array($config['interfaces']['lan'])) { - $config['interfaces']['lan'] = array(); - } - $config['interfaces']['lan']['if'] = $lanif; - $config['interfaces']['lan']['enable'] = true; - } elseif (!file_exists('/var/run/booting') && - isset($config['interfaces']['lan'])) { - -echo <<