interfaces: convert wlan assignment (hides ugly code)

This commit is contained in:
Franco Fichtner 2022-08-26 12:55:28 +02:00
parent f72a06d1d5
commit f052ae4bc2
2 changed files with 21 additions and 12 deletions

View File

@ -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;

View File

@ -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;
}