hostapd: Update to version 2021-04-04
[openwrt/staging/hauke.git] / package / network / services / hostapd / patches / 020-ignore-4addr-mode-enabling-error.patch
diff --git a/package/network/services/hostapd/patches/020-ignore-4addr-mode-enabling-error.patch b/package/network/services/hostapd/patches/020-ignore-4addr-mode-enabling-error.patch
deleted file mode 100644 (file)
index 0cffee2..0000000
+++ /dev/null
@@ -1,72 +0,0 @@
-From 58bbbb5981440da508164cbd423ca5dd7c1b98d8 Mon Sep 17 00:00:00 2001
-From: Jouni Malinen <j@w1.fi>
-Date: Sat, 13 Feb 2021 23:59:28 +0200
-Subject: nl80211: Ignore 4addr mode enabling error if it was already enabled
-
-nl80211_set_4addr_mode() could fail when trying to enable 4addr mode on
-an interface that is in a bridge and has 4addr mode already enabled.
-This operation would not have been necessary in the first place and this
-failure results in disconnecting, e.g., when roaming from one backhaul
-BSS to another BSS with Multi AP.
-
-Avoid this issue by ignoring the nl80211 command failure in the case
-where 4addr mode is being enabled while it has already been enabled.
-
-Signed-off-by: Jouni Malinen <j@w1.fi>
----
- src/drivers/driver_nl80211.c | 24 ++++++++++++++++++++++++
- 1 file changed, 24 insertions(+)
-
---- a/src/drivers/driver_nl80211.c
-+++ b/src/drivers/driver_nl80211.c
-@@ -617,6 +617,7 @@ struct wiphy_idx_data {
-       int wiphy_idx;
-       enum nl80211_iftype nlmode;
-       u8 *macaddr;
-+      u8 use_4addr;
- };
-@@ -639,6 +640,9 @@ static int netdev_info_handler(struct nl
-               os_memcpy(info->macaddr, nla_data(tb[NL80211_ATTR_MAC]),
-                         ETH_ALEN);
-+      if (tb[NL80211_ATTR_4ADDR])
-+              info->use_4addr = nla_get_u8(tb[NL80211_ATTR_4ADDR]);
-+
-       return NL_SKIP;
- }
-@@ -691,6 +695,20 @@ static int nl80211_get_macaddr(struct i8
- }
-+static int nl80211_get_4addr(struct i802_bss *bss)
-+{
-+      struct nl_msg *msg;
-+      struct wiphy_idx_data data = {
-+              .use_4addr = 0,
-+      };
-+
-+      if (!(msg = nl80211_cmd_msg(bss, 0, NL80211_CMD_GET_INTERFACE)) ||
-+          send_and_recv_msgs(bss->drv, msg, netdev_info_handler, &data))
-+              return -1;
-+      return data.use_4addr;
-+}
-+
-+
- static int nl80211_register_beacons(struct wpa_driver_nl80211_data *drv,
-                                   struct nl80211_wiphy_data *w)
- {
-@@ -11511,6 +11529,11 @@ static int nl80211_set_4addr_mode(void *
-       ret = send_and_recv_msgs(drv, msg, NULL, NULL);
-       msg = NULL;
-+      if (ret && val && nl80211_get_4addr(bss) == 1) {
-+              wpa_printf(MSG_DEBUG,
-+                         "nl80211: 4addr mode was already enabled");
-+              ret = 0;
-+      }
-       if (!ret) {
-               if (bridge_ifname[0] && val &&
-                   i802_check_bridge(drv, bss, bridge_ifname, bss->ifname) < 0)