diff options
-rw-r--r-- | usr/local/www/interfaces_bridge_edit.php | 11 | ||||
-rwxr-xr-x | usr/local/www/interfaces_wlan.inc | 5 |
2 files changed, 11 insertions, 5 deletions
diff --git a/usr/local/www/interfaces_bridge_edit.php b/usr/local/www/interfaces_bridge_edit.php index a1b9fdc..05ddc2d 100644 --- a/usr/local/www/interfaces_bridge_edit.php +++ b/usr/local/www/interfaces_bridge_edit.php @@ -123,6 +123,17 @@ if ($_POST) { $input_errors[] = "{$ifdescr} interface path cost for STP needs to be an interger between 1 and 200000000."; $i++; } + + if (!is_array($_POST['members']) || count($_POST['members'] < 2) + $input_errors[] = "You must select at least 2 member interfaces for a bridge."; + + if (is_array($_POST['members'])) { + foreach($_POST['members'] as $ifmembers) + if (is_array($config['interfaces'][$ifmembers]['wireless']) && + $config['interfaces'][$ifmembers]['wireless']['mode'] != "hostap") + $input_errors[] = "Bridging a wireless interface is only possible in hostap mode."; + } + if (!$input_errors) { $bridge = array(); $bridge['members'] = implode(',', $_POST['members']); diff --git a/usr/local/www/interfaces_wlan.inc b/usr/local/www/interfaces_wlan.inc index 84c9e6a..62d1f09 100755 --- a/usr/local/www/interfaces_wlan.inc +++ b/usr/local/www/interfaces_wlan.inc @@ -86,11 +86,6 @@ function wireless_config_post() { $reqdfieldsn = explode(",", "Mode,SSID"); do_input_validation($_POST, $reqdfields, $reqdfieldsn, &$input_errors); - if (!$input_errors) { - /* bridge check (hostap only!) */ - if ($pconfig['bridge'] && ($pconfig['mode'] != "hostap")) - $input_errors[] = "Bridging a wireless interface is only possible in hostap mode."; - } } /* loop through keys and enforce size */ |