mirror of
https://github.com/lucaspalomodevelop/core.git
synced 2026-03-13 16:14:40 +00:00
interfaces: finish wireless/wlan rework #5987
* Devices are now configured inline or directly via pluginctl * Try to use "wlan" underneath as shorter and upstream term
This commit is contained in:
parent
471ae4b6bd
commit
6f91dc4683
@ -180,30 +180,30 @@ function _interfaces_vlan_configure($vlan)
|
||||
interfaces_bring_up($vlan['vlanif']);
|
||||
}
|
||||
|
||||
function interfaces_create_wireless_clones($verbose = false)
|
||||
function interfaces_wlan_clone($device)
|
||||
{
|
||||
global $config;
|
||||
|
||||
if ($verbose) {
|
||||
echo 'Creating wireless clone interfaces...';
|
||||
flush();
|
||||
}
|
||||
|
||||
foreach (array_keys(get_configured_interface_with_descr()) as $if) {
|
||||
if (isset($config['interfaces'][$if]['wireless'])) {
|
||||
interface_wireless_clone(get_real_interface($if), $config['interfaces'][$if]);
|
||||
if (!isset($config['interfaces'][$if]['wireless'])) {
|
||||
continue;
|
||||
}
|
||||
$realif = get_real_interface($if);
|
||||
/* XXX 'if' check only required if parent is still embedded */
|
||||
if ($device == $realif || $device == $config['interfaces'][$if]['if']) {
|
||||
_interfaces_wlan_clone($realif, $config['interfaces'][$if]);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
if (isset($config['wireless']['clone'])) {
|
||||
foreach ($config['wireless']['clone'] as $clone) {
|
||||
interface_wireless_clone($clone['cloneif'], $clone);
|
||||
if ($device == $clone['cloneif']) {
|
||||
_interfaces_wlan_clone($clone['cloneif'], $clone);
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if ($verbose) {
|
||||
echo "done.\n";
|
||||
}
|
||||
}
|
||||
|
||||
function interfaces_bridge_configure($device)
|
||||
@ -755,7 +755,6 @@ function interfaces_configure($verbose = false)
|
||||
}
|
||||
|
||||
interfaces_loopback_configure($verbose);
|
||||
interfaces_create_wireless_clones($verbose);
|
||||
interfaces_lagg_configure($verbose);
|
||||
interfaces_vlan_configure($verbose);
|
||||
|
||||
@ -1450,7 +1449,7 @@ function interface_carp_configure($vip)
|
||||
}
|
||||
}
|
||||
|
||||
function interface_wireless_clone($realif, $wlcfg)
|
||||
function _interfaces_wlan_clone($realif, $wlcfg)
|
||||
{
|
||||
/*
|
||||
* Check to see if interface has been cloned as of yet.
|
||||
@ -1607,10 +1606,10 @@ function interface_wireless_configure($if, &$wancfg)
|
||||
$wancfg['wireless'] = [];
|
||||
}
|
||||
|
||||
/* XXX interface_wireless_clone() and interface_sync_wireless_clones() need work */
|
||||
/* XXX _interfaces_wlan_clone() and interface_sync_wireless_clones() need work */
|
||||
|
||||
// Clone wireless nic if needed.
|
||||
interface_wireless_clone($if, $wancfg);
|
||||
_interfaces_wlan_clone($if, $wancfg);
|
||||
|
||||
// Reject inadvertent changes to shared settings in case the interface hasn't been configured.
|
||||
interface_sync_wireless_clones($wancfg, false);
|
||||
|
||||
@ -231,7 +231,7 @@ function core_devices()
|
||||
}
|
||||
|
||||
$devices[] = [
|
||||
'function' => null, /* XXX needs to handle implied clones as well */
|
||||
'function' => 'interfaces_wlan_clone',
|
||||
'names' => $wlan_names,
|
||||
'pattern' => '_wlan',
|
||||
'volatile' => true,
|
||||
|
||||
@ -505,7 +505,7 @@ if ($_SERVER['REQUEST_METHOD'] === 'GET') {
|
||||
/* Sync first to be sure it displays the actual settings that will be used */
|
||||
interface_sync_wireless_clones($a_interfaces[$if], false);
|
||||
/* Get wireless modes */
|
||||
interface_wireless_clone(get_real_interface($if), $a_interfaces[$if]);
|
||||
_interfaces_wlan_clone(get_real_interface($if), $a_interfaces[$if]);
|
||||
$wlanbaseif = interface_get_wireless_base($a_interfaces[$if]['if']);
|
||||
$std_wl_copy_fieldnames = array(
|
||||
'standard', 'mode','protmode', 'ssid', 'channel', 'txpower', 'diversity', 'txantenna', 'rxantenna',
|
||||
@ -945,7 +945,7 @@ if ($_SERVER['REQUEST_METHOD'] === 'GET') {
|
||||
if ($clone_count > 1) {
|
||||
$wlanif = get_real_interface($if);
|
||||
$a_interfaces[$if]['wireless']['mode'] = $pconfig['mode'];
|
||||
if (!interface_wireless_clone("{$wlanif}_", $a_interfaces[$if])) {
|
||||
if (!_interfaces_wlan_clone("{$wlanif}_", $a_interfaces[$if])) {
|
||||
$input_errors[] = sprintf(gettext("Unable to change mode to %s. You may already have the maximum number of wireless clones supported in this mode."), $wlan_modes[$a_interfaces[$if]['wireless']['mode']]);
|
||||
} else {
|
||||
legacy_interface_destroy("{$wlanif}_");
|
||||
|
||||
@ -101,7 +101,7 @@ if ($_SERVER['REQUEST_METHOD'] === 'GET') {
|
||||
}
|
||||
}
|
||||
if (count($input_errors) == 0) {
|
||||
if (!interface_wireless_clone($clone['cloneif'], $clone)) {
|
||||
if (!_interfaces_wlan_clone($clone['cloneif'], $clone)) {
|
||||
$input_errors[] = sprintf(gettext('Error creating interface with mode %s. The %s interface may not support creating more clones with the selected mode.'), $wlan_modes[$clone['mode']], $clone['if']);
|
||||
} else {
|
||||
if (isset($id)) {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user