You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
openwrt/package/network/services/hostapd/patches/003-mesh-relocate-RSN-init-...

42 lines
1.3 KiB
Diff

From 95425b5becaeda8a515c942f417696e5df34bbc8 Mon Sep 17 00:00:00 2001
From: Peter Oh <peter.oh@bowerswilkins.com>
Date: Tue, 17 Apr 2018 21:55:00 -0700
Subject: [PATCH 03/16] mesh: relocate RSN init function
RSN init function should work together with mesh join
when it's used. Since mesh join could be called at different stage
if DFS channel is used, relocate the function to mesh join.
It is still the same call flows of mesh join before this changes
if non-DFS channels are used, hence no side effect will occur.
Signed-off-by: Peter Oh <peter.oh@bowerswilkins.com>
---
wpa_supplicant/mesh.c | 9 ++++++---
1 file changed, 6 insertions(+), 3 deletions(-)
--- a/wpa_supplicant/mesh.c
+++ b/wpa_supplicant/mesh.c
@@ -335,9 +335,6 @@ static int wpa_supplicant_mesh_init(stru
return -1;
}
- if (wpas_mesh_init_rsn(wpa_s))
- goto out_free;
-
wpa_supplicant_conf_ap_ht(wpa_s, ssid, conf);
return 0;
@@ -383,6 +380,12 @@ void wpas_join_mesh(struct wpa_supplican
struct wpa_ssid *ssid = wpa_s->current_ssid;
int ret = 0;
+ if (wpas_mesh_init_rsn(wpa_s)) {
+ wpa_printf(MSG_ERROR, "Init RSN failed. Deinit mesh...");
+ wpa_supplicant_mesh_deinit(wpa_s);
+ return;
+ }
+
if (ssid->key_mgmt & WPA_KEY_MGMT_SAE) {
wpa_s->pairwise_cipher = wpa_s->mesh_rsn->pairwise_cipher;
wpa_s->group_cipher = wpa_s->mesh_rsn->group_cipher;