interfaces: signal wlan device creation success/failure

This commit is contained in:
Franco Fichtner 2023-09-15 08:46:20 +02:00
parent 6ccacaf0f9
commit fa1efd0506

View File

@ -193,19 +193,19 @@ function interfaces_wlan_clone($device)
$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;
return _interfaces_wlan_clone($realif, $config['interfaces'][$if]);
}
}
if (isset($config['wireless']['clone'])) {
foreach ($config['wireless']['clone'] as $clone) {
if ($device == $clone['cloneif']) {
_interfaces_wlan_clone($clone['cloneif'], $clone);
return;
return _interfaces_wlan_clone($clone['cloneif'], $clone);
}
}
}
return null;
}
function interfaces_bridge_configure($device)
@ -1451,8 +1451,6 @@ function _interfaces_wlan_clone($realif, $wlcfg)
break;
}
$baseif = interface_get_wireless_base($wlcfg['if']);
if (does_interface_exist($realif)) {
exec("/sbin/ifconfig " . escapeshellarg($realif), $output, $ret);
$ifconfig_str = implode(PHP_EOL, $output);
@ -1473,18 +1471,20 @@ function _interfaces_wlan_clone($realif, $wlcfg)
}
if ($needs_clone) {
$baseif = interface_get_wireless_base($wlcfg['if']);
legacy_interface_destroy($realif);
exec("/sbin/ifconfig wlan create wlandev {$baseif} {$mode} bssid name {$realif} 2>&1", $out, $ret);
if ($ret != 0) {
log_msg("Failed to clone interface {$baseif} with error code {$ret}, output {$out[0]}", LOG_ERR);
return false;
return null;
}
file_put_contents("/tmp/{$realif}_oldmac", get_interface_mac($realif));
}
return true;
return $realif;
}
function interface_sync_wireless_clones(&$ifcfg, $sync_changes = false) /* XXX kill side effect */