From f052ae4bc2357d69de7971e77f52cb41bb84c81c Mon Sep 17 00:00:00 2001 From: Franco Fichtner Date: Fri, 26 Aug 2022 12:55:28 +0200 Subject: [PATCH] interfaces: convert wlan assignment (hides ugly code) --- src/etc/inc/plugins.inc.d/core.inc | 21 +++++++++++++++++++++ src/www/interfaces_assign.php | 12 ------------ 2 files changed, 21 insertions(+), 12 deletions(-) diff --git a/src/etc/inc/plugins.inc.d/core.inc b/src/etc/inc/plugins.inc.d/core.inc index 85fede9d9..a9f645ffd 100644 --- a/src/etc/inc/plugins.inc.d/core.inc +++ b/src/etc/inc/plugins.inc.d/core.inc @@ -176,7 +176,28 @@ function core_devices() 'type' => 'gre', ]; + $wlan_assign = []; + + foreach (config_read_array('wireless', 'clone') as $dev) { + $wlan_assign[$dev['cloneif']] = [ + 'descr' => sprintf('%s (%s)', $dev['cloneif'], $dev['descr']), + 'ifdescr' => sprintf('%s', $dev['descr']), + 'section' => 'wireless.clone', + ]; + } + + foreach (legacy_config_get_interfaces() as $id => $conf) { + if (isset($conf['wireless']) && !isset($wlan_assign[$conf['if']])) { + $wlan_assign[$conf['if']] = [ + 'descr' => sprintf('%s (%s)', $conf['if'], gettext('wireless clone')), + 'ifdescr' => gettext('wireless clone'), + 'section' => 'wireless.clone', + ]; + } + } + $devices[] = [ + 'assign' => $wlan_assign, 'names' => core_device_names('cloneif', ['wireless', 'clone'], function ($names) { global $config; diff --git a/src/www/interfaces_assign.php b/src/www/interfaces_assign.php index 1b6b15a10..431c96e06 100644 --- a/src/www/interfaces_assign.php +++ b/src/www/interfaces_assign.php @@ -68,7 +68,6 @@ function list_interfaces($devices) $config_sections['openvpn.openvpn-server'] = ['descr' => 'vpnid,description', 'prefix' => 'ovpns', 'key' => 'vpnid', 'format' => 'ovpns%s (OpenVPN Server %s)']; $config_sections['ppps.ppp'] = ['descr' => 'if,ports,descr,username', 'key' => 'if','format' => '%s (%s) - %s %s', 'fields' => 'type']; $config_sections['vlans.vlan'] = ['descr' => 'vlanif,descr,if,tag', 'key' => 'vlanif', 'format' => gettext('%s %s (Parent: %s, Tag: %s)')]; - $config_sections['wireless.clone'] = ['descr' => 'cloneif,descr', 'key' => 'cloneif', 'format' => '%s (%s)']; // add physical network interfaces foreach (get_interface_list() as $key => $intf_item) { @@ -133,17 +132,6 @@ function list_interfaces($devices) } } - // fixup wireless mess (automatic types have no explicit clones) - foreach (legacy_config_get_interfaces() as $id => $conf) { - if (isset($conf['wireless']) && !isset($interfaces[$conf['if']])) { - $interfaces[$conf['if']] = [ - 'descr' => sprintf('%s (%s)', $conf['if'], gettext('wireless clone')), - 'ifdescr' => gettext('wireless clone'), - 'section' => 'wireless.clone', - ]; - } - } - return $interfaces; }