diff --git a/etc/inc/config.inc b/etc/inc/config.inc index 5df8bfd38e..0a80955ccc 100644 --- a/etc/inc/config.inc +++ b/etc/inc/config.inc @@ -556,6 +556,7 @@ function set_networking_interfaces_ports() { global $noreboot; global $config; global $g; + global $fp; $fp = fopen('php://stdin', 'r'); @@ -782,50 +783,51 @@ EOD; return null; } - function vlan_setup() { - global $iflist, $config, $g, $fp; +} - if (is_array($config['vlans']['vlan']) && count($config['vlans']['vlan'])) { +function vlan_setup() { + global $iflist, $config, $g, $fp; - echo << 4094)) { - echo "\nInvalid VLAN tag '{$vlan['tag']}'\n"; + if ($vlan['if']) { + if (!array_key_exists($vlan['if'], $iflist)) { + echo "\nInvalid interface name '{$vlan['if']}'\n"; continue; } - - $config['vlans']['vlan'][] = $vlan; + } else { + break; } + + echo "Enter the VLAN tag (1-4094): "; + $vlan['tag'] = chop(fgets($fp)); + + if (!is_numericint($vlan['tag']) || ($vlan['tag'] < 1) || ($vlan['tag'] > 4094)) { + echo "\nInvalid VLAN tag '{$vlan['tag']}'\n"; + continue; + } + + $config['vlans']['vlan'][] = $vlan; } }