diff options
author | Ermal Luçi <eri@pfsense.org> | 2010-01-18 18:21:34 +0000 |
---|---|---|
committer | Ermal Luçi <eri@pfsense.org> | 2010-01-18 18:21:34 +0000 |
commit | 67b6de9ee2367034708dac0af576788854ed6747 (patch) | |
tree | 5581b7df7742c80ce0b9b01d2f7cd886ec4b022f /usr | |
parent | 6a94050a53d095ff44ab8600eb1e114e70514bbe (diff) | |
download | pfsense-67b6de9ee2367034708dac0af576788854ed6747.zip pfsense-67b6de9ee2367034708dac0af576788854ed6747.tar.gz |
Do not allow deleting lagg interfaces when they have vlans on top.
Diffstat (limited to 'usr')
-rw-r--r-- | usr/local/www/interfaces_lagg.php | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/usr/local/www/interfaces_lagg.php b/usr/local/www/interfaces_lagg.php index e8a9e54..a8ffd26 100644 --- a/usr/local/www/interfaces_lagg.php +++ b/usr/local/www/interfaces_lagg.php @@ -47,7 +47,7 @@ if (!is_array($config['laggs']['lagg'])) $a_laggs = &$config['laggs']['lagg'] ; function lagg_inuse($num) { - global $config; + global $config, $a_laggs; $iflist = get_configured_interface_list(false, true); foreach ($iflist as $if) { @@ -55,6 +55,12 @@ function lagg_inuse($num) { return true; } + if (is_array($config['vlans']['vlan']) && count($config['vlans']['vlan'])) { + foreach ($config['vlans']['vlan'] as $vlan) { + if($vlan['if'] == $a_laggs[$num]['laggif']) + return true; + } + } return false; } @@ -63,7 +69,7 @@ if ($_GET['act'] == "del") { if (lagg_inuse($_GET['id'])) { $input_errors[] = "This lagg interface cannot be deleted because it is still being used."; } else { - mwexec("/sbin/ifconfig " . $a_laggs[$_GET['id']]['laggif'] . " destroy"); + mwexec_bg("/sbin/ifconfig " . $a_laggs[$_GET['id']]['laggif'] . " destroy"); unset($a_laggs[$_GET['id']]); write_config(); |