hostapd: Update to version 2.8 (2019-04-21)
[openwrt/openwrt.git] / package / network / services / hostapd / patches / 002-mesh-factor-out-rsn-initialization.patch
diff --git a/package/network/services/hostapd/patches/002-mesh-factor-out-rsn-initialization.patch b/package/network/services/hostapd/patches/002-mesh-factor-out-rsn-initialization.patch
deleted file mode 100644 (file)
index 26e872d..0000000
+++ /dev/null
@@ -1,133 +0,0 @@
-From 89db76eeff6502dfa39b011962ec9d560ed4c2ee Mon Sep 17 00:00:00 2001
-From: Peter Oh <peter.oh@bowerswilkins.com>
-Date: Tue, 29 May 2018 14:39:06 -0700
-Subject: [PATCH 02/18] mesh: factor out rsn initialization
-
-RSN initialization can be used in different phases
-if mesh initialization and mesh join don't happen
-in sequence such as DFS CAC is done in between,
-hence factor it out to help convering the case.
-
-Signed-off-by: Peter Oh <peter.oh@bowerswilkins.com>
----
- wpa_supplicant/mesh.c | 84 +++++++++++++++++++++++++------------------
- wpa_supplicant/mesh.h |  1 +
- 2 files changed, 50 insertions(+), 35 deletions(-)
-
---- a/wpa_supplicant/mesh.c
-+++ b/wpa_supplicant/mesh.c
-@@ -147,6 +147,53 @@ static void wpas_mesh_copy_groups(struct
- }
-+int wpas_mesh_init_rsn(struct wpa_supplicant *wpa_s)
-+{
-+      struct hostapd_iface *ifmsh = wpa_s->ifmsh;
-+      struct mesh_conf *mconf = wpa_s->ifmsh->mconf;
-+      struct wpa_ssid *ssid = wpa_s->current_ssid;
-+      struct hostapd_data *bss = ifmsh->bss[0];
-+      static int default_groups[] = { 19, 20, 21, 25, 26, -1 };
-+      const char *password;
-+      size_t len;
-+
-+      if (mconf->security != MESH_CONF_SEC_NONE) {
-+              password = ssid->sae_password;
-+              if (!password)
-+                      password = ssid->passphrase;
-+              if (!password) {
-+                      wpa_printf(MSG_ERROR,
-+                                 "mesh: Passphrase for SAE not configured");
-+                      return -1;
-+              }
-+
-+              bss->conf->wpa = ssid->proto;
-+              bss->conf->wpa_key_mgmt = ssid->key_mgmt;
-+
-+              if (wpa_s->conf->sae_groups &&
-+                  wpa_s->conf->sae_groups[0] > 0) {
-+                      wpas_mesh_copy_groups(bss, wpa_s);
-+              } else {
-+                      bss->conf->sae_groups =
-+                              os_memdup(default_groups,
-+                                        sizeof(default_groups));
-+                      if (!bss->conf->sae_groups)
-+                              return -1;
-+              }
-+
-+              len = os_strlen(password);
-+              bss->conf->ssid.wpa_passphrase =
-+                      dup_binstr(password, len);
-+
-+              wpa_s->mesh_rsn = mesh_rsn_auth_init(wpa_s, mconf);
-+              if (!wpa_s->mesh_rsn)
-+                      return -1;
-+      }
-+
-+      return 0;
-+}
-+
-+
- static int wpa_supplicant_mesh_init(struct wpa_supplicant *wpa_s,
-                                   struct wpa_ssid *ssid,
-                                   struct hostapd_freq_params *freq)
-@@ -156,9 +203,6 @@ static int wpa_supplicant_mesh_init(stru
-       struct hostapd_config *conf;
-       struct mesh_conf *mconf;
-       int basic_rates_erp[] = { 10, 20, 55, 60, 110, 120, 240, -1 };
--      static int default_groups[] = { 19, 20, 21, 25, 26, -1 };
--      const char *password;
--      size_t len;
-       int rate_len;
-       int frequency;
-@@ -292,38 +336,8 @@ static int wpa_supplicant_mesh_init(stru
-               return -1;
-       }
--      if (mconf->security != MESH_CONF_SEC_NONE) {
--              password = ssid->sae_password;
--              if (!password)
--                      password = ssid->passphrase;
--              if (!password) {
--                      wpa_printf(MSG_ERROR,
--                                 "mesh: Passphrase for SAE not configured");
--                      goto out_free;
--              }
--
--              bss->conf->wpa = ssid->proto;
--              bss->conf->wpa_key_mgmt = ssid->key_mgmt;
--
--              if (wpa_s->conf->sae_groups &&
--                  wpa_s->conf->sae_groups[0] > 0) {
--                      wpas_mesh_copy_groups(bss, wpa_s);
--              } else {
--                      bss->conf->sae_groups =
--                              os_memdup(default_groups,
--                                        sizeof(default_groups));
--                      if (!bss->conf->sae_groups)
--                              goto out_free;
--              }
--
--              len = os_strlen(password);
--              bss->conf->ssid.wpa_passphrase =
--                      dup_binstr(password, len);
--
--              wpa_s->mesh_rsn = mesh_rsn_auth_init(wpa_s, mconf);
--              if (!wpa_s->mesh_rsn)
--                      goto out_free;
--      }
-+      if (wpas_mesh_init_rsn(wpa_s))
-+              goto out_free;
-       wpa_supplicant_conf_ap_ht(wpa_s, ssid, conf);
---- a/wpa_supplicant/mesh.h
-+++ b/wpa_supplicant/mesh.h
-@@ -22,6 +22,7 @@ int wpas_mesh_peer_remove(struct wpa_sup
- int wpas_mesh_peer_add(struct wpa_supplicant *wpa_s, const u8 *addr,
-                      int duration);
- void wpas_join_mesh(struct wpa_supplicant *wpa_s);
-+int wpas_mesh_init_rsn(struct wpa_supplicant *wpa_s);
- #ifdef CONFIG_MESH