mirror of
https://github.com/lucaspalomodevelop/core.git
synced 2026-03-13 16:14:40 +00:00
interfaces: remove is_interface_wireless() #5987
Make the presence of <wireless/> node authoritative except for the assignment page where we need to set this node in the first place. Now pivot away from a handrolled regex of devices names to trust the output of the sysctl net.wlan.devices which is also the prefix for our clones.
This commit is contained in:
parent
c65133f9b9
commit
feb7a4615d
@ -190,9 +190,8 @@ function interfaces_create_wireless_clones($verbose = false)
|
||||
}
|
||||
|
||||
foreach (array_keys(get_configured_interface_with_descr()) as $if) {
|
||||
$realif = $config['interfaces'][$if]['if'];
|
||||
if (is_interface_wireless($realif)) {
|
||||
interface_wireless_clone(interface_get_wireless_clone($realif), $config['interfaces'][$if]);
|
||||
if (isset($config['interfaces'][$if]['wireless'])) {
|
||||
interface_wireless_clone(interface_get_wireless_clone($config['interfaces'][$if]['if']), $config['interfaces'][$if]);
|
||||
}
|
||||
}
|
||||
|
||||
@ -857,7 +856,7 @@ function interface_bring_down($interface = 'wan', $ifacecfg = false)
|
||||
* interface is down. They will also use 100% CPU if running after
|
||||
* the wireless clone gets deleted.
|
||||
*/
|
||||
if (!empty($ifcfg['wireless'])) {
|
||||
if (isset($ifcfg['wireless'])) {
|
||||
kill_wpasupplicant($realif);
|
||||
kill_hostapd($realif);
|
||||
}
|
||||
@ -1537,10 +1536,6 @@ function interface_sync_wireless_clones(&$ifcfg, $sync_changes = false) /* XXX k
|
||||
'txpower',
|
||||
);
|
||||
|
||||
if (!is_interface_wireless($ifcfg['if'])) {
|
||||
return;
|
||||
}
|
||||
|
||||
$baseif = interface_get_wireless_base($ifcfg['if']);
|
||||
|
||||
foreach (array_keys(legacy_config_get_interfaces(['virtual' => false])) as $if) {
|
||||
@ -1607,7 +1602,7 @@ function interface_wireless_configure($if, &$wancfg)
|
||||
{
|
||||
global $config;
|
||||
|
||||
if (empty($wancfg['wireless'])) {
|
||||
if (!isset($wancfg['wireless'])) {
|
||||
return;
|
||||
}
|
||||
|
||||
@ -3759,23 +3754,6 @@ function get_interface_ipv6($interface = 'wan', $ifconfig_details = null)
|
||||
return $ipv6;
|
||||
}
|
||||
|
||||
/****f* interfaces/is_interface_wireless
|
||||
* NAME
|
||||
* is_interface_wireless - Returns if an interface is wireless
|
||||
* RESULT
|
||||
* $tmp - Returns if an interface is wireless
|
||||
******/
|
||||
function is_interface_wireless($interface)
|
||||
{
|
||||
global $config;
|
||||
|
||||
$friendly = convert_real_interface_to_friendly_interface_name($interface);
|
||||
|
||||
/* XXX we might consider checking clones if wireless node is not set by default */
|
||||
|
||||
return isset($config['interfaces'][$friendly]['wireless']);
|
||||
}
|
||||
|
||||
function get_interface_mac($interface, $ifconfig_details = null)
|
||||
{
|
||||
$intf_details = [];
|
||||
@ -4005,7 +3983,7 @@ function get_interfaces_info($include_unlinked = false)
|
||||
|
||||
if ($ifinfo['status'] == "up") {
|
||||
$wifconfiginfo = array();
|
||||
if (is_interface_wireless($ifdescr)) {
|
||||
if (isset($config['interfaces'][$ifdescr]['wireless'])) {
|
||||
exec("/sbin/ifconfig {$ifinfo['if']} list sta", $wifconfiginfo);
|
||||
array_shift($wifconfiginfo);
|
||||
}
|
||||
|
||||
@ -257,13 +257,13 @@ function test_wireless_capability($if, $cap)
|
||||
return false;
|
||||
}
|
||||
|
||||
function get_wireless_modes($interface) {
|
||||
/* return wireless modes and channels */
|
||||
$wireless_modes = array();
|
||||
/* return wireless modes and channels */
|
||||
function get_wireless_modes($interface)
|
||||
{
|
||||
$wireless_modes = [];
|
||||
|
||||
$cloned_interface = get_real_interface($interface);
|
||||
|
||||
if ($cloned_interface && is_interface_wireless($cloned_interface)) {
|
||||
if ($cloned_interface) {
|
||||
$chan_list = "/sbin/ifconfig {$cloned_interface} list chan";
|
||||
$stack_list = "/usr/bin/awk -F\"Channel \" '{ gsub(/\\*/, \" \"); print \$2 \"\\\n\" \$3 }'";
|
||||
$format_list = "/usr/bin/awk '{print \$5 \" \" \$6 \",\" \$1}'";
|
||||
@ -298,15 +298,17 @@ function get_wireless_modes($interface) {
|
||||
}
|
||||
}
|
||||
}
|
||||
return($wireless_modes);
|
||||
|
||||
return $wireless_modes;
|
||||
}
|
||||
|
||||
/* return channel numbers, frequency, max txpower, and max regulation txpower */
|
||||
function get_wireless_channel_info($interface) {
|
||||
$wireless_channels = array();
|
||||
function get_wireless_channel_info($interface)
|
||||
{
|
||||
$wireless_channels = [];
|
||||
|
||||
$cloned_interface = get_real_interface($interface);
|
||||
if ($cloned_interface && is_interface_wireless($cloned_interface)) {
|
||||
if ($cloned_interface) {
|
||||
$chan_list = "/sbin/ifconfig {$cloned_interface} list txpower";
|
||||
$stack_list = "/usr/bin/awk -F\"Channel \" '{ gsub(/\\*/, \" \"); print \$2 \"\\\n\" \$3 }'";
|
||||
$format_list = "/usr/bin/awk '{print \$1 \",\" \$3 \" \" \$4 \",\" \$5 \",\" \$7}'";
|
||||
@ -321,7 +323,8 @@ function get_wireless_channel_info($interface) {
|
||||
}
|
||||
}
|
||||
}
|
||||
return($wireless_channels);
|
||||
|
||||
return $wireless_channels;
|
||||
}
|
||||
|
||||
$ifdescrs = legacy_config_get_interfaces(['virtual' => false]);
|
||||
|
||||
@ -36,36 +36,11 @@ require_once("interfaces.inc");
|
||||
|
||||
function match_wireless_interface($int)
|
||||
{
|
||||
$wireless_prefix = [
|
||||
'an',
|
||||
'ath',
|
||||
'bwi',
|
||||
'bwn',
|
||||
'ipw',
|
||||
'iwi',
|
||||
'iwlwifi',
|
||||
'iwm',
|
||||
'iwn',
|
||||
'malo',
|
||||
'mwl',
|
||||
'ndis',
|
||||
'otus',
|
||||
'ral',
|
||||
'rsu',
|
||||
'rtwn',
|
||||
'rum',
|
||||
'run',
|
||||
'uath',
|
||||
'upgt',
|
||||
'ural',
|
||||
'urtw',
|
||||
'wi',
|
||||
'wlan',
|
||||
'wpi',
|
||||
'zyd',
|
||||
];
|
||||
global $wireless_devices;
|
||||
|
||||
return preg_match('/^(' . implode('|', $wireless_prefix) . ')/', $int);
|
||||
/* XXX check for wireless clones? */
|
||||
|
||||
return preg_match('/^(' . implode('|', $wireless_devices) . ')/', $int);
|
||||
}
|
||||
|
||||
function link_interface_to_group($int)
|
||||
@ -184,6 +159,7 @@ function list_interfaces()
|
||||
return $interfaces;
|
||||
}
|
||||
|
||||
$wireless_devices = legacy_interface_listget('wlan');
|
||||
|
||||
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
|
||||
$input_errors = [];
|
||||
@ -226,7 +202,7 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') {
|
||||
$config['interfaces'][$newifname]['ipaddr'] = $interfaces[$_POST['if_add']]['type'];
|
||||
}
|
||||
if (match_wireless_interface($_POST['if_add'])) {
|
||||
$config['interfaces'][$newifname]['wireless'] = array();
|
||||
$config['interfaces'][$newifname]['wireless'] = [];
|
||||
interface_sync_wireless_clones($config['interfaces'][$newifname], false);
|
||||
}
|
||||
|
||||
@ -373,7 +349,7 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') {
|
||||
}
|
||||
|
||||
if ($reloadif) {
|
||||
if (match_wireless_interface($ifport)) {
|
||||
if (isset($config['interfaces'][$ifname]['wireless'])) {
|
||||
interface_sync_wireless_clones($config['interfaces'][$ifname], false);
|
||||
}
|
||||
/* Reload all for the interface. */
|
||||
|
||||
@ -121,13 +121,12 @@ if ($_SERVER['REQUEST_METHOD'] === 'GET') {
|
||||
if (!$listed) {
|
||||
continue;
|
||||
}
|
||||
$ifinfo = $ifsinfo[$ifdescr];
|
||||
$iswireless = is_interface_wireless($ifdescr); ?>
|
||||
$ifinfo = $ifsinfo[$ifdescr]; ?>
|
||||
<tr id="interface_widget_item_<?= html_safe($ifname) ?>">
|
||||
<td style="width:15%; word-break: break-word;">
|
||||
<?php if (isset($ifinfo['ppplink'])): ?>
|
||||
<span title="3g" class="fa fa-mobile text-success"></span>
|
||||
<?php elseif ($iswireless): ?>
|
||||
<?php elseif (isset($config['interfaces'][$ifdescr]['wireless'])): ?>
|
||||
<?php if ($ifinfo['status'] == 'associated' || $ifinfo['status'] == 'up'): ?>
|
||||
<span title="wlan" class="fa fa-signal text-success"></span>
|
||||
<?php else: ?>
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user