diff options
-rw-r--r-- | etc/inc/config.inc | 4 | ||||
-rw-r--r-- | etc/inc/interfaces.inc | 11 | ||||
-rwxr-xr-x | usr/local/www/interfaces_vlan_edit.php | 2 |
3 files changed, 9 insertions, 8 deletions
diff --git a/etc/inc/config.inc b/etc/inc/config.inc index 6dd751d..3b8922c 100644 --- a/etc/inc/config.inc +++ b/etc/inc/config.inc @@ -815,7 +815,7 @@ EOD; echo sprintf("% -8s%s\n", "vlan{$vlan['tag']}", "VLAN tag {$vlan['tag']}, interface {$vlan['if']}"); - $iflist['vlan' . $vlan['tag']] = array(); + $iflist[$vlan['if'] . '.vlan' . $vlan['tag']] = array(); } } @@ -1146,7 +1146,7 @@ EOD; echo "Enter the VLAN tag (1-4094): "; $vlan['tag'] = chop(fgets($fp)); - $vlan['vlanif'] = "vlan{$vlan['tag']}"; + $vlan['vlanif'] = "{$vlan['if']}.vlan{$vlan['tag']}"; if (!is_numericint($vlan['tag']) || ($vlan['tag'] < 1) || ($vlan['tag'] > 4094)) { echo "\nInvalid VLAN tag '{$vlan['tag']}'\n"; continue; diff --git a/etc/inc/interfaces.inc b/etc/inc/interfaces.inc index 72fb3a1..63d36e7 100644 --- a/etc/inc/interfaces.inc +++ b/etc/inc/interfaces.inc @@ -90,7 +90,7 @@ function interfaces_vlan_configure() { if (is_array($config['vlans']['vlan']) && count($config['vlans']['vlan'])) { foreach ($config['vlans']['vlan'] as $vlan) { if(empty($vlan['vlanif'])) - $vlan['vlanif'] = "vlan{$vlan['tag']}"; + $vlan['vlanif'] = "{$vlan['if']}.vlan{$vlan['tag']}"; /* XXX: Maybe we should report any errors?! */ interface_vlan_configure($vlan); } @@ -105,7 +105,7 @@ function interface_vlan_configure($vlan) { return; } $if = $vlan['if']; - $vlanif = empty($vlan['vlanif']) ? "vlan{$vlan['tag']}" : $vlan['vlanif']; + $vlanif = empty($vlan['vlanif']) ? "{$if}.vlan{$vlan['tag']}" : $vlan['vlanif']; $tag = $vlan['tag']; if(empty($if)) { @@ -132,9 +132,10 @@ function interface_vlan_configure($vlan) { to retain previous behavior and avoid regressions */ if($carpcount < 1) mwexec("/sbin/ifconfig {$vlanif} destroy"); - mwexec("/sbin/ifconfig {$vlanif} create"); - } else - $vlanif = exec("/sbin/ifconfig vlan create"); + //mwexec("/sbin/ifconfig {$vlanif} create"); + } + $tmpvlanif = exec("/sbin/ifconfig vlan create"); + mwexec("/sbin/ifconfig {$tmpvlanif} name {$vlanif}"); mwexec("/sbin/ifconfig {$vlanif} vlan " . escapeshellarg($tag) . " vlandev " . diff --git a/usr/local/www/interfaces_vlan_edit.php b/usr/local/www/interfaces_vlan_edit.php index 04f7f4b..2b68596 100755 --- a/usr/local/www/interfaces_vlan_edit.php +++ b/usr/local/www/interfaces_vlan_edit.php @@ -98,7 +98,7 @@ if ($_POST) { $vlan['if'] = $_POST['if']; $vlan['tag'] = $_POST['tag']; $vlan['descr'] = $_POST['descr']; - $vlan['vlanif'] = "vlan{$_POST['tag']}"; + $vlan['vlanif'] = "{$_POST['if']}.vlan{$_POST['tag']}"; $vlan['vlanif'] = interface_vlan_configure($vlan); if ($vlan['vlanif'] == "" || !stristr($vlan['vlanif'], "vlan")) |