diff options
| author | Felix Fietkau <nbd@nbd.name> | 2023-09-22 07:58:45 +0200 |
|---|---|---|
| committer | Felix Fietkau <nbd@nbd.name> | 2023-09-22 07:59:27 +0200 |
| commit | fd6d7aafb2c3d335a3d192c308ffdace8d292e9f (patch) | |
| tree | d288cf0c5fa7b72af6db4d361cf2edc74b4331ed /package/network | |
| parent | ce7209bd21661e3daa4a7f2f58dafdff990da19f (diff) | |
| download | upstream-fd6d7aafb2c3d335a3d192c308ffdace8d292e9f.tar.gz upstream-fd6d7aafb2c3d335a3d192c308ffdace8d292e9f.tar.bz2 upstream-fd6d7aafb2c3d335a3d192c308ffdace8d292e9f.zip | |
hostapd: fix wpa_supplicant bringup with non-nl80211 drivers
Needed for wired 802.1x
Signed-off-by: Felix Fietkau <nbd@nbd.name>
Diffstat (limited to 'package/network')
| -rw-r--r-- | package/network/services/hostapd/src/wpa_supplicant/ucode.c | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/package/network/services/hostapd/src/wpa_supplicant/ucode.c b/package/network/services/hostapd/src/wpa_supplicant/ucode.c index 55d22584ff4..6cba73dcd53 100644 --- a/package/network/services/hostapd/src/wpa_supplicant/ucode.c +++ b/package/network/services/hostapd/src/wpa_supplicant/ucode.c @@ -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; |
