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:
parent
ce7209bd21
commit
fd6d7aafb2
|
@ -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;
|
||||
|
||||
|
|
Loading…
Reference in New Issue