hostapd: fix wpa_supplicant bringup with non-nl80211 drivers

Needed for wired 802.1x

Signed-off-by: Felix Fietkau <nbd@nbd.name>
This commit is contained in:
Felix Fietkau 2023-09-22 07:58:45 +02:00
parent ce7209bd21
commit fd6d7aafb2
1 changed files with 17 additions and 0 deletions

View File

@ -136,6 +136,7 @@ static uc_value_t *
uc_wpas_add_iface(uc_vm_t *vm, size_t nargs)
{
uc_value_t *info = uc_fn_arg(0);
uc_value_t *driver = ucv_object_get(info, "driver", NULL);
uc_value_t *ifname = ucv_object_get(info, "iface", NULL);
uc_value_t *bridge = ucv_object_get(info, "bridge", NULL);
uc_value_t *config = ucv_object_get(info, "config", NULL);
@ -154,6 +155,22 @@ uc_wpas_add_iface(uc_vm_t *vm, size_t nargs)
.ctrl_interface = ucv_string_get(ctrl),
};
if (driver) {
const char *drvname;
if (ucv_type(driver) != UC_STRING)
goto out;
iface.driver = NULL;
drvname = ucv_string_get(driver);
for (int i = 0; wpa_drivers[i]; i++) {
if (!strcmp(drvname, wpa_drivers[i]->name))
iface.driver = wpa_drivers[i]->name;
}
if (!iface.driver)
goto out;
}
if (!iface.ifname || !iface.confname)
goto out;