hostapd: update to version 2024-09-15
authorIvan Pavlov <AuthorReflex@gmail.com>
Sat, 7 Sep 2024 17:54:34 +0000 (20:54 +0300)
committerRobert Marko <robimarko@gmail.com>
Mon, 16 Sep 2024 08:32:43 +0000 (10:32 +0200)
Remove upstreamed from 2.11 release:
  060-nl80211-fix-crash-when-adding-an-interface-fails.patch

Rebase all other patches

Signed-off-by: Ivan Pavlov <AuthorReflex@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/16338
Signed-off-by: Robert Marko <robimarko@gmail.com>
43 files changed:
package/network/services/hostapd/Makefile
package/network/services/hostapd/patches/010-mesh-Allow-DFS-channels-to-be-selected-if-dfs-is-ena.patch
package/network/services/hostapd/patches/011-mesh-use-deterministic-channel-on-channel-switch.patch
package/network/services/hostapd/patches/021-fix-sta-add-after-previous-connection.patch
package/network/services/hostapd/patches/050-Fix-OpenWrt-13156.patch
package/network/services/hostapd/patches/051-nl80211-add-extra-ies-only-if-allowed-by-driver.patch
package/network/services/hostapd/patches/060-nl80211-fix-crash-when-adding-an-interface-fails.patch [deleted file]
package/network/services/hostapd/patches/140-tests-Makefile-make-run-tests-with-CONFIG_TLS.patch
package/network/services/hostapd/patches/150-add-NULL-checks-encountered-during-tests-hwsim.patch
package/network/services/hostapd/patches/170-hostapd-update-cfs0-and-cfs1-for-160MHz.patch
package/network/services/hostapd/patches/200-multicall.patch
package/network/services/hostapd/patches/211-ctrl-make-WNM_AP-functions-dependant-on-CONFIG_AP.patch
package/network/services/hostapd/patches/220-indicate-features.patch
package/network/services/hostapd/patches/250-hostapd_cli_ifdef.patch
package/network/services/hostapd/patches/252-disable_ctrl_iface_mib.patch
package/network/services/hostapd/patches/300-noscan.patch
package/network/services/hostapd/patches/301-mesh-noscan.patch
package/network/services/hostapd/patches/310-rescan_immediately.patch
package/network/services/hostapd/patches/330-nl80211_fix_set_freq.patch
package/network/services/hostapd/patches/350-nl80211_del_beacon_bss.patch
package/network/services/hostapd/patches/381-hostapd_cli_UNKNOWN-COMMAND.patch
package/network/services/hostapd/patches/460-wpa_supplicant-add-new-config-params-to-be-used-with.patch
package/network/services/hostapd/patches/463-add-mcast_rate-to-11s.patch
package/network/services/hostapd/patches/464-fix-mesh-obss-check.patch
package/network/services/hostapd/patches/465-hostapd-config-support-random-BSS-color.patch
package/network/services/hostapd/patches/590-rrm-wnm-statistics.patch
package/network/services/hostapd/patches/600-ubus_support.patch
package/network/services/hostapd/patches/601-ucode_support.patch
package/network/services/hostapd/patches/701-reload_config_inline.patch
package/network/services/hostapd/patches/710-vlan_no_bridge.patch
package/network/services/hostapd/patches/711-wds_bridge_force.patch
package/network/services/hostapd/patches/720-iface_max_num_sta.patch
package/network/services/hostapd/patches/730-ft_iface.patch
package/network/services/hostapd/patches/740-snoop_iface.patch
package/network/services/hostapd/patches/760-dynamic_own_ip.patch
package/network/services/hostapd/patches/761-shared_das_port.patch
package/network/services/hostapd/patches/762-AP-don-t-ignore-probe-requests-with-invalid-DSSS-par.patch
package/network/services/hostapd/patches/770-radius_server.patch
package/network/services/hostapd/patches/780-Implement-APuP-Access-Point-Micro-Peering.patch
package/network/services/hostapd/patches/790-APuP-add-ubus-notification-when-a-peer-comes-up.patch
package/network/services/hostapd/patches/800-APuP-add-ucode-hook-for-when-a-peer-comes-up.patch
package/network/services/hostapd/src/src/ap/ubus.h
package/network/services/hostapd/src/src/ap/ucode.c

index c3667303367ae40a38075024c62a9dbea41d3409..1c0b6548662e37e57d25757aa7ea2ee79b198f23 100644 (file)
@@ -9,9 +9,9 @@ PKG_RELEASE:=1
 
 PKG_SOURCE_URL:=https://w1.fi/hostap.git
 PKG_SOURCE_PROTO:=git
-PKG_SOURCE_DATE:=2024-07-20
-PKG_SOURCE_VERSION:=d945ddd368085f255e68328f2d3b020ceea359af
-PKG_MIRROR_HASH:=647508a242f2969d8a815edb69d47b107f10d2415604e44b0451c48875ae46bd
+PKG_SOURCE_DATE:=2024-09-15
+PKG_SOURCE_VERSION:=5ace39b0a4cdbe18ddbc4e18f80ee3876233c20b
+PKG_MIRROR_HASH:=43187d1ddd923970ef3821a0fe267880c2483f6f1a5acd0dd2d7906661ab1372
 
 PKG_MAINTAINER:=Felix Fietkau <nbd@nbd.name>
 PKG_LICENSE:=BSD-3-Clause
index cbb91ddeabfdabb4db7b00d050006bf619c6a3ab..d20a6d76d44cc8c2b5c6769f591c5626bc7329bc 100644 (file)
@@ -14,7 +14,7 @@ Signed-off-by: Peter Oh <peter.oh@bowerswilkins.com>
 
 --- a/wpa_supplicant/wpa_supplicant.c
 +++ b/wpa_supplicant/wpa_supplicant.c
-@@ -2809,7 +2809,7 @@ static int drv_supports_vht(struct wpa_s
+@@ -2831,7 +2831,7 @@ static int drv_supports_vht(struct wpa_s
  }
  
  
@@ -23,7 +23,7 @@ Signed-off-by: Peter Oh <peter.oh@bowerswilkins.com>
  {
        int i;
  
-@@ -2818,7 +2818,10 @@ static bool ibss_mesh_is_80mhz_avail(int
+@@ -2840,7 +2840,10 @@ static bool ibss_mesh_is_80mhz_avail(int
  
                chan = hw_get_channel_chan(mode, i, NULL);
                if (!chan ||
@@ -35,7 +35,7 @@ Signed-off-by: Peter Oh <peter.oh@bowerswilkins.com>
                        return false;
        }
  
-@@ -2945,7 +2948,7 @@ static void ibss_mesh_select_40mhz(struc
+@@ -2967,7 +2970,7 @@ static void ibss_mesh_select_40mhz(struc
                                   const struct wpa_ssid *ssid,
                                   struct hostapd_hw_modes *mode,
                                   struct hostapd_freq_params *freq,
@@ -44,7 +44,7 @@ Signed-off-by: Peter Oh <peter.oh@bowerswilkins.com>
        int chan_idx;
        struct hostapd_channel_data *pri_chan = NULL, *sec_chan = NULL;
        int i, res;
-@@ -2969,8 +2972,11 @@ static void ibss_mesh_select_40mhz(struc
+@@ -2991,8 +2994,11 @@ static void ibss_mesh_select_40mhz(struc
                return;
  
        /* Check primary channel flags */
@@ -57,7 +57,7 @@ Signed-off-by: Peter Oh <peter.oh@bowerswilkins.com>
  
  #ifdef CONFIG_HT_OVERRIDES
        if (ssid->disable_ht40)
-@@ -2996,8 +3002,11 @@ static void ibss_mesh_select_40mhz(struc
+@@ -3018,8 +3024,11 @@ static void ibss_mesh_select_40mhz(struc
                return;
  
        /* Check secondary channel flags */
@@ -70,7 +70,7 @@ Signed-off-by: Peter Oh <peter.oh@bowerswilkins.com>
  
        if (ht40 == -1) {
                if (!(pri_chan->flag & HOSTAPD_CHAN_HT40MINUS))
-@@ -3052,7 +3061,7 @@ static bool ibss_mesh_select_80_160mhz(s
+@@ -3074,7 +3083,7 @@ static bool ibss_mesh_select_80_160mhz(s
                                       const struct wpa_ssid *ssid,
                                       struct hostapd_hw_modes *mode,
                                       struct hostapd_freq_params *freq,
@@ -79,7 +79,7 @@ Signed-off-by: Peter Oh <peter.oh@bowerswilkins.com>
        static const int bw80[] = {
                5180, 5260, 5500, 5580, 5660, 5745, 5825,
                5955, 6035, 6115, 6195, 6275, 6355, 6435,
-@@ -3097,7 +3106,7 @@ static bool ibss_mesh_select_80_160mhz(s
+@@ -3119,7 +3128,7 @@ static bool ibss_mesh_select_80_160mhz(s
                goto skip_80mhz;
  
        /* Use 40 MHz if channel not usable */
@@ -88,7 +88,7 @@ Signed-off-by: Peter Oh <peter.oh@bowerswilkins.com>
                goto skip_80mhz;
  
        chwidth = CONF_OPER_CHWIDTH_80MHZ;
-@@ -3111,7 +3120,7 @@ static bool ibss_mesh_select_80_160mhz(s
+@@ -3133,7 +3142,7 @@ static bool ibss_mesh_select_80_160mhz(s
        if ((mode->he_capab[ieee80211_mode].phy_cap[
                     HE_PHYCAP_CHANNEL_WIDTH_SET_IDX] &
             HE_PHYCAP_CHANNEL_WIDTH_SET_160MHZ_IN_5G) && is_6ghz &&
@@ -97,7 +97,7 @@ Signed-off-by: Peter Oh <peter.oh@bowerswilkins.com>
                for (j = 0; j < ARRAY_SIZE(bw160); j++) {
                        if (freq->freq == bw160[j]) {
                                chwidth = CONF_OPER_CHWIDTH_160MHZ;
-@@ -3139,10 +3148,12 @@ static bool ibss_mesh_select_80_160mhz(s
+@@ -3161,10 +3170,12 @@ static bool ibss_mesh_select_80_160mhz(s
                                if (!chan)
                                        continue;
  
@@ -113,7 +113,7 @@ Signed-off-by: Peter Oh <peter.oh@bowerswilkins.com>
  
                                /* Found a suitable second segment for 80+80 */
                                chwidth = CONF_OPER_CHWIDTH_80P80MHZ;
-@@ -3197,6 +3208,7 @@ void ibss_mesh_setup_freq(struct wpa_sup
+@@ -3219,6 +3230,7 @@ void ibss_mesh_setup_freq(struct wpa_sup
        int obss_scan = 1;
        u8 channel;
        bool is_6ghz, is_24ghz;
@@ -121,7 +121,7 @@ Signed-off-by: Peter Oh <peter.oh@bowerswilkins.com>
  
        freq->freq = ssid->frequency;
  
-@@ -3239,9 +3251,9 @@ void ibss_mesh_setup_freq(struct wpa_sup
+@@ -3261,9 +3273,9 @@ void ibss_mesh_setup_freq(struct wpa_sup
        freq->channel = channel;
        /* Setup higher BW only for 5 GHz */
        if (mode->mode == HOSTAPD_MODE_IEEE80211A) {
index f22841c63ba66b2c815b5702849dd8225ed32b93..bfc30e2842b528a2e9418f1cdba92aafb1535b6c 100644 (file)
@@ -29,7 +29,7 @@ Signed-off-by: Markus Theil <markus.theil@tu-ilmenau.de>
  
  
  enum dfs_channel_type {
-@@ -527,9 +528,14 @@ dfs_get_valid_channel(struct hostapd_ifa
+@@ -534,9 +535,14 @@ dfs_get_valid_channel(struct hostapd_ifa
        int num_available_chandefs;
        int chan_idx, chan_idx2;
        int sec_chan_idx_80p80 = -1;
@@ -44,7 +44,7 @@ Signed-off-by: Markus Theil <markus.theil@tu-ilmenau.de>
        wpa_printf(MSG_DEBUG, "DFS: Selecting random channel");
        *secondary_channel = 0;
        *oper_centr_freq_seg0_idx = 0;
-@@ -549,8 +555,20 @@ dfs_get_valid_channel(struct hostapd_ifa
+@@ -556,8 +562,20 @@ dfs_get_valid_channel(struct hostapd_ifa
        if (num_available_chandefs == 0)
                return NULL;
  
@@ -68,7 +68,7 @@ Signed-off-by: Markus Theil <markus.theil@tu-ilmenau.de>
                   chan_idx, num_available_chandefs);
 --- a/src/drivers/driver_nl80211.c
 +++ b/src/drivers/driver_nl80211.c
-@@ -11306,6 +11306,10 @@ static int nl80211_switch_channel(void *
+@@ -11465,6 +11465,10 @@ static int nl80211_switch_channel(void *
        if (ret)
                goto error;
  
index a39f03c0f1e4a75cda7e42146ab3cdf5786ab50d..b5551f50e60db004160278cf5fe75c68fefd063a 100644 (file)
@@ -4,7 +4,7 @@ Subject: [PATCH] fix adding back stations after a missed deauth/disassoc
 
 --- a/src/ap/ieee802_11.c
 +++ b/src/ap/ieee802_11.c
-@@ -4756,6 +4756,13 @@ static int add_associated_sta(struct hos
+@@ -4784,6 +4784,13 @@ static int add_associated_sta(struct hos
         * drivers to accept the STA parameter configuration. Since this is
         * after a new FT-over-DS exchange, a new TK has been derived, so key
         * reinstallation is not a concern for this case.
@@ -18,7 +18,7 @@ Subject: [PATCH] fix adding back stations after a missed deauth/disassoc
         */
        wpa_printf(MSG_DEBUG, "Add associated STA " MACSTR
                   " (added_unassoc=%d auth_alg=%u ft_over_ds=%u reassoc=%d authorized=%d ft_tk=%d fils_tk=%d)",
-@@ -4769,7 +4776,8 @@ static int add_associated_sta(struct hos
+@@ -4797,7 +4804,8 @@ static int add_associated_sta(struct hos
            (!(sta->flags & WLAN_STA_AUTHORIZED) ||
             (reassoc && sta->ft_over_ds && sta->auth_alg == WLAN_AUTH_FT) ||
             (!wpa_auth_sta_ft_tk_already_set(sta->wpa_sm) &&
index 0456ef20b1b850edc4e7d7e3c07ee9dfeb5d26a4..2492e480fb597772264599ddc0d458a7749e03ef 100644 (file)
@@ -20,7 +20,7 @@ Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be>
 
 --- a/src/ap/hostapd.c
 +++ b/src/ap/hostapd.c
-@@ -3993,6 +3993,8 @@ int hostapd_remove_iface(struct hapd_int
+@@ -4055,6 +4055,8 @@ int hostapd_remove_iface(struct hapd_int
  void hostapd_new_assoc_sta(struct hostapd_data *hapd, struct sta_info *sta,
                           int reassoc)
  {
@@ -29,7 +29,7 @@ Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be>
        if (hapd->tkip_countermeasures) {
                hostapd_drv_sta_deauth(hapd, sta->addr,
                                       WLAN_REASON_MICHAEL_MIC_FAILURE);
-@@ -4000,10 +4002,16 @@ void hostapd_new_assoc_sta(struct hostap
+@@ -4062,10 +4064,16 @@ void hostapd_new_assoc_sta(struct hostap
        }
  
  #ifdef CONFIG_IEEE80211BE
index d3c261d077b3dd8447e34ac552daf1c5e132f339..46ee6234be6837526a2693f1563e972fac4d4e47 100644 (file)
@@ -26,7 +26,7 @@ Signed-off-by: David Bauer <mail@david-bauer.net>
 
 --- a/src/drivers/driver.h
 +++ b/src/drivers/driver.h
-@@ -2355,6 +2355,9 @@ struct wpa_driver_capa {
+@@ -2390,6 +2390,9 @@ struct wpa_driver_capa {
        /** Maximum number of iterations in a single scan plan */
        u32 max_sched_scan_plan_iterations;
  
@@ -51,7 +51,7 @@ Signed-off-by: David Bauer <mail@david-bauer.net>
                        nla_get_u8(tb[NL80211_ATTR_MAX_MATCH_SETS]);
 --- a/src/drivers/driver_nl80211_scan.c
 +++ b/src/drivers/driver_nl80211_scan.c
-@@ -221,7 +221,7 @@ nl80211_scan_common(struct i802_bss *bss
+@@ -235,7 +235,7 @@ nl80211_scan_common(struct i802_bss *bss
                wpa_printf(MSG_DEBUG, "nl80211: Passive scan requested");
        }
  
diff --git a/package/network/services/hostapd/patches/060-nl80211-fix-crash-when-adding-an-interface-fails.patch b/package/network/services/hostapd/patches/060-nl80211-fix-crash-when-adding-an-interface-fails.patch
deleted file mode 100644 (file)
index 028d356..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-From: Felix Fietkau <nbd@nbd.name>
-Date: Fri, 14 Jun 2024 14:41:16 +0200
-Subject: [PATCH] nl80211: fix crash when adding an interface fails
-
-When adding an interface fails early, the bss link is still NULL.
-Avoid crashing on deleting beacons.
-
-Signed-off-by: Felix Fietkau <nbd@nbd.name>
----
-
---- a/src/drivers/driver_nl80211.c
-+++ b/src/drivers/driver_nl80211.c
-@@ -3083,7 +3083,7 @@ static int wpa_driver_nl80211_del_beacon
-       struct wpa_driver_nl80211_data *drv = bss->drv;
-       struct i802_link *link = nl80211_get_link(bss, link_id);
--      if (!link->beacon_set)
-+      if (!link || !link->beacon_set)
-               return 0;
-       wpa_printf(MSG_DEBUG, "nl80211: Remove beacon (ifindex=%d)",
index fd6055d2911c886c93ea301b61d58d492fe96ea7..6bc1b78bdadb8202eb492d0db5ee9eec8cf730ab 100644 (file)
@@ -979,7 +979,7 @@ Signed-off-by: Glenn Strauss <gstrauss@gluelogic.com>
              raise HwsimSkip("Crypto library does not support Brainpool curves: " + tls)
      capa = dev.request("GET_CAPABILITY dpp")
      ver = 1
-@@ -3902,6 +3903,9 @@ def test_dpp_proto_auth_req_no_i_proto_k
+@@ -3925,6 +3926,9 @@ def test_dpp_proto_auth_req_no_i_proto_k
  
  def test_dpp_proto_auth_req_invalid_i_proto_key(dev, apdev):
      """DPP protocol testing - invalid I-proto key in Auth Req"""
@@ -989,7 +989,7 @@ Signed-off-by: Glenn Strauss <gstrauss@gluelogic.com>
      run_dpp_proto_auth_req_missing(dev, 66, "Invalid Initiator Protocol Key")
  
  def test_dpp_proto_auth_req_no_i_nonce(dev, apdev):
-@@ -3997,7 +4001,12 @@ def test_dpp_proto_auth_resp_no_r_proto_
+@@ -4020,7 +4024,12 @@ def test_dpp_proto_auth_resp_no_r_proto_
  
  def test_dpp_proto_auth_resp_invalid_r_proto_key(dev, apdev):
      """DPP protocol testing - invalid R-Proto Key in Auth Resp"""
@@ -1003,7 +1003,7 @@ Signed-off-by: Glenn Strauss <gstrauss@gluelogic.com>
  
  def test_dpp_proto_auth_resp_no_r_nonce(dev, apdev):
      """DPP protocol testing - no R-nonce in Auth Resp"""
-@@ -4359,11 +4368,17 @@ def test_dpp_proto_pkex_exchange_resp_in
+@@ -4382,11 +4391,17 @@ def test_dpp_proto_pkex_exchange_resp_in
  
  def test_dpp_proto_pkex_cr_req_invalid_bootstrap_key(dev, apdev):
      """DPP protocol testing - invalid Bootstrap Key in PKEX Commit-Reveal Request"""
index c8c3ff33f420221ac307b5894a06872aa6b8994e..78ed459ee6965e6ef975dafbc004f054a129ebd6 100644 (file)
@@ -29,7 +29,7 @@ Signed-off-by: Glenn Strauss <gstrauss@gluelogic.com>
        wpa_printf(MSG_DEBUG, "DPP: Generating a keypair");
 --- a/src/common/sae.c
 +++ b/src/common/sae.c
-@@ -1278,6 +1278,13 @@ void sae_deinit_pt(struct sae_pt *pt)
+@@ -1279,6 +1279,13 @@ void sae_deinit_pt(struct sae_pt *pt)
  static int sae_derive_commit_element_ecc(struct sae_data *sae,
                                         struct crypto_bignum *mask)
  {
index 0f7b8ef7f78b96a6bcd0a7a6f05e56ddb7ff7f69..0af7a379bcb222f80819f3377c326d6bd4e2397e 100644 (file)
@@ -40,7 +40,7 @@ Signed-off-by: P Praneesh <ppranees@codeaurora.org>
  #endif /* CONFIG_IEEE80211AC */
 --- a/src/ap/ieee802_11_ht.c
 +++ b/src/ap/ieee802_11_ht.c
-@@ -82,7 +82,9 @@ u8 * hostapd_eid_ht_capabilities(struct
+@@ -127,7 +127,9 @@ no_update:
  u8 * hostapd_eid_ht_operation(struct hostapd_data *hapd, u8 *eid)
  {
        struct ieee80211_ht_operation *oper;
@@ -50,9 +50,9 @@ Signed-off-by: P Praneesh <ppranees@codeaurora.org>
  
        if (!hapd->iconf->ieee80211n || hapd->conf->disable_11n ||
            is_6ghz_op_class(hapd->iconf->op_class))
-@@ -103,6 +105,13 @@ u8 * hostapd_eid_ht_operation(struct hos
-               oper->ht_param |= HT_INFO_HT_PARAM_SECONDARY_CHNL_BELOW |
-                       HT_INFO_HT_PARAM_STA_CHNL_WIDTH;
+@@ -143,6 +145,13 @@ u8 * hostapd_eid_ht_operation(struct hos
+       oper->operation_mode = host_to_le16(hapd->iface->ht_op_mode);
+       set_ht_param(hapd, oper);
  
 +      vht_capabilities_info = host_to_le32(hapd->iface->current_mode->vht_capab);
 +      chwidth = hostapd_get_oper_chwidth(hapd->iconf);
@@ -130,7 +130,7 @@ Signed-off-by: P Praneesh <ppranees@codeaurora.org>
  #undef VHT_CAP_CHECK_MAX
 --- a/src/common/ieee802_11_defs.h
 +++ b/src/common/ieee802_11_defs.h
-@@ -1398,6 +1398,8 @@ struct ieee80211_ampe_ie {
+@@ -1401,6 +1401,8 @@ struct ieee80211_ampe_ie {
  #define VHT_CAP_VHT_LINK_ADAPTATION_VHT_MRQ_MFB     ((u32) BIT(26) | BIT(27))
  #define VHT_CAP_RX_ANTENNA_PATTERN                  ((u32) BIT(28))
  #define VHT_CAP_TX_ANTENNA_PATTERN                  ((u32) BIT(29))
index 8bb3d8de6cf9b583c1563fa9917173fd88da948d..80a484e974d25d1a422fc5b8f6dceb3f4f7f3750 100644 (file)
@@ -71,7 +71,7 @@ This allows building both hostapd and wpa_supplicant as a single binary
        @$(E) "  LD " $@
 --- a/hostapd/main.c
 +++ b/hostapd/main.c
-@@ -692,6 +692,11 @@ fail:
+@@ -696,6 +696,11 @@ fail:
        return -1;
  }
  
@@ -83,7 +83,7 @@ This allows building both hostapd and wpa_supplicant as a single binary
  
  #ifdef CONFIG_WPS
  static int gen_uuid(const char *txt_addr)
-@@ -808,6 +813,8 @@ int main(int argc, char *argv[])
+@@ -817,6 +822,8 @@ int main(int argc, char *argv[])
                return -1;
  #endif /* CONFIG_DPP */
  
@@ -94,8 +94,8 @@ This allows building both hostapd and wpa_supplicant as a single binary
                if (c < 0)
 --- a/src/ap/drv_callbacks.c
 +++ b/src/ap/drv_callbacks.c
-@@ -2409,8 +2409,8 @@ static void hostapd_event_color_change(s
- #endif  /* CONFIG_IEEE80211AX */
+@@ -2520,8 +2520,8 @@ static void hostapd_mld_iface_disable(st
+ #endif /* CONFIG_IEEE80211BE */
  
  
 -void wpa_supplicant_event(void *ctx, enum wpa_event_type event,
@@ -105,7 +105,7 @@ This allows building both hostapd and wpa_supplicant as a single binary
  {
        struct hostapd_data *hapd = ctx;
        struct sta_info *sta;
-@@ -2769,7 +2769,7 @@ void wpa_supplicant_event(void *ctx, enu
+@@ -2879,7 +2879,7 @@ void wpa_supplicant_event(void *ctx, enu
  }
  
  
@@ -116,7 +116,7 @@ This allows building both hostapd and wpa_supplicant as a single binary
        struct hapd_interfaces *interfaces = ctx;
 --- a/src/drivers/driver.h
 +++ b/src/drivers/driver.h
-@@ -6847,8 +6847,8 @@ union wpa_event_data {
+@@ -6974,8 +6974,8 @@ union wpa_event_data {
   * Driver wrapper code should call this function whenever an event is received
   * from the driver.
   */
@@ -127,7 +127,7 @@ This allows building both hostapd and wpa_supplicant as a single binary
  
  /**
   * wpa_supplicant_event_global - Report a driver event for wpa_supplicant
-@@ -6860,7 +6860,7 @@ void wpa_supplicant_event(void *ctx, enu
+@@ -6987,7 +6987,7 @@ void wpa_supplicant_event(void *ctx, enu
   * Same as wpa_supplicant_event(), but we search for the interface in
   * wpa_global.
   */
@@ -278,8 +278,8 @@ This allows building both hostapd and wpa_supplicant as a single binary
        os_memset(&eapol_test, 0, sizeof(eapol_test));
 --- a/wpa_supplicant/events.c
 +++ b/wpa_supplicant/events.c
-@@ -5979,8 +5979,8 @@ static void wpas_link_reconfig(struct wp
- }
+@@ -6131,8 +6131,8 @@ static int wpas_pasn_auth(struct wpa_sup
+ #endif /* CONFIG_PASN */
  
  
 -void wpa_supplicant_event(void *ctx, enum wpa_event_type event,
@@ -289,7 +289,7 @@ This allows building both hostapd and wpa_supplicant as a single binary
  {
        struct wpa_supplicant *wpa_s = ctx;
        int resched;
-@@ -6932,7 +6932,7 @@ void wpa_supplicant_event(void *ctx, enu
+@@ -7084,7 +7084,7 @@ void wpa_supplicant_event(void *ctx, enu
  }
  
  
@@ -331,7 +331,7 @@ This allows building both hostapd and wpa_supplicant as a single binary
        os_memset(&global, 0, sizeof(global));
 --- a/wpa_supplicant/wpa_supplicant.c
 +++ b/wpa_supplicant/wpa_supplicant.c
-@@ -7714,7 +7714,6 @@ struct wpa_interface * wpa_supplicant_ma
+@@ -7787,7 +7787,6 @@ struct wpa_interface * wpa_supplicant_ma
        return NULL;
  }
  
@@ -339,7 +339,7 @@ This allows building both hostapd and wpa_supplicant as a single binary
  /**
   * wpa_supplicant_match_existing - Match existing interfaces
   * @global: Pointer to global data from wpa_supplicant_init()
-@@ -7749,6 +7748,11 @@ static int wpa_supplicant_match_existing
+@@ -7822,6 +7821,11 @@ static int wpa_supplicant_match_existing
  
  #endif /* CONFIG_MATCH_IFACE */
  
@@ -351,7 +351,7 @@ This allows building both hostapd and wpa_supplicant as a single binary
  
  /**
   * wpa_supplicant_add_iface - Add a new network interface
-@@ -8005,6 +8009,8 @@ struct wpa_global * wpa_supplicant_init(
+@@ -8078,6 +8082,8 @@ struct wpa_global * wpa_supplicant_init(
  #ifndef CONFIG_NO_WPA_MSG
        wpa_msg_register_ifname_cb(wpa_supplicant_msg_ifname_cb);
  #endif /* CONFIG_NO_WPA_MSG */
index 475a50b87e54200d5145d587c3cd9a2f072bf371..38d4d1500a4347384892b5da91307b10093645ef 100644 (file)
@@ -13,7 +13,7 @@ Signed-off-by: David Bauer <mail@david-bauer.net>
 
 --- a/wpa_supplicant/ctrl_iface.c
 +++ b/wpa_supplicant/ctrl_iface.c
-@@ -13233,7 +13233,7 @@ char * wpa_supplicant_ctrl_iface_process
+@@ -13292,7 +13292,7 @@ char * wpa_supplicant_ctrl_iface_process
                if (wpas_ctrl_iface_coloc_intf_report(wpa_s, buf + 18))
                        reply_len = -1;
  #endif /* CONFIG_WNM */
@@ -22,7 +22,7 @@ Signed-off-by: David Bauer <mail@david-bauer.net>
        } else if (os_strncmp(buf, "DISASSOC_IMMINENT ", 18) == 0) {
                if (ap_ctrl_iface_disassoc_imminent(wpa_s, buf + 18))
                        reply_len = -1;
-@@ -13243,7 +13243,7 @@ char * wpa_supplicant_ctrl_iface_process
+@@ -13302,7 +13302,7 @@ char * wpa_supplicant_ctrl_iface_process
        } else if (os_strncmp(buf, "BSS_TM_REQ ", 11) == 0) {
                if (ap_ctrl_iface_bss_tm_req(wpa_s, buf + 11))
                        reply_len = -1;
index ab0af9593e33240237ebe348760a16e8e27cafeb..13a5c38631d04149b257bc3be10f16d7d5d6449f 100644 (file)
@@ -15,7 +15,7 @@ Subject: [PATCH] hostapd: support optional argument for the -v switch of
  
  struct hapd_global {
        void **drv_priv;
-@@ -816,7 +816,7 @@ int main(int argc, char *argv[])
+@@ -825,7 +825,7 @@ int main(int argc, char *argv[])
        wpa_supplicant_event = hostapd_wpa_event;
        wpa_supplicant_event_global = hostapd_wpa_event_global;
        for (;;) {
@@ -24,7 +24,7 @@ Subject: [PATCH] hostapd: support optional argument for the -v switch of
                if (c < 0)
                        break;
                switch (c) {
-@@ -853,6 +853,8 @@ int main(int argc, char *argv[])
+@@ -862,6 +862,8 @@ int main(int argc, char *argv[])
                        break;
  #endif /* CONFIG_DEBUG_LINUX_TRACING */
                case 'v':
index 58143020ce0a17e9d4853a642c4c2ba81c000cb6..90737b2ac0e9b6daaedc0463172834e19c6fbebc 100644 (file)
@@ -5,7 +5,7 @@ Subject: [PATCH] hostapd: support wps in hostapd_cli even when built from the
 
 --- a/hostapd/hostapd_cli.c
 +++ b/hostapd/hostapd_cli.c
-@@ -401,7 +401,6 @@ static int hostapd_cli_cmd_disassociate(
+@@ -409,7 +409,6 @@ static int hostapd_cli_cmd_disassociate(
  }
  
  
@@ -13,7 +13,7 @@ Subject: [PATCH] hostapd: support wps in hostapd_cli even when built from the
  static int hostapd_cli_cmd_signature(struct wpa_ctrl *ctrl, int argc,
                                     char *argv[])
  {
-@@ -414,7 +413,6 @@ static int hostapd_cli_cmd_signature(str
+@@ -422,7 +421,6 @@ static int hostapd_cli_cmd_signature(str
        os_snprintf(buf, sizeof(buf), "SIGNATURE %s", argv[0]);
        return wpa_ctrl_command(ctrl, buf);
  }
@@ -21,7 +21,7 @@ Subject: [PATCH] hostapd: support wps in hostapd_cli even when built from the
  
  
  static int hostapd_cli_cmd_sa_query(struct wpa_ctrl *ctrl, int argc,
-@@ -431,7 +429,6 @@ static int hostapd_cli_cmd_sa_query(stru
+@@ -439,7 +437,6 @@ static int hostapd_cli_cmd_sa_query(stru
  }
  
  
@@ -29,7 +29,7 @@ Subject: [PATCH] hostapd: support wps in hostapd_cli even when built from the
  static int hostapd_cli_cmd_wps_pin(struct wpa_ctrl *ctrl, int argc,
                                   char *argv[])
  {
-@@ -657,7 +654,6 @@ static int hostapd_cli_cmd_wps_config(st
+@@ -665,7 +662,6 @@ static int hostapd_cli_cmd_wps_config(st
                         ssid_hex, argv[1]);
        return wpa_ctrl_command(ctrl, buf);
  }
@@ -37,7 +37,7 @@ Subject: [PATCH] hostapd: support wps in hostapd_cli even when built from the
  
  
  static int hostapd_cli_cmd_disassoc_imminent(struct wpa_ctrl *ctrl, int argc,
-@@ -1686,13 +1682,10 @@ static const struct hostapd_cli_cmd host
+@@ -1694,13 +1690,10 @@ static const struct hostapd_cli_cmd host
        { "disassociate", hostapd_cli_cmd_disassociate,
          hostapd_complete_stations,
          "<addr> = disassociate a station" },
@@ -51,7 +51,7 @@ Subject: [PATCH] hostapd: support wps in hostapd_cli even when built from the
        { "wps_pin", hostapd_cli_cmd_wps_pin, NULL,
          "<uuid> <pin> [timeout] [addr] = add WPS Enrollee PIN" },
        { "wps_check_pin", hostapd_cli_cmd_wps_check_pin, NULL,
-@@ -1717,7 +1710,6 @@ static const struct hostapd_cli_cmd host
+@@ -1725,7 +1718,6 @@ static const struct hostapd_cli_cmd host
          "<SSID> <auth> <encr> <key> = configure AP" },
        { "wps_get_status", hostapd_cli_cmd_wps_get_status, NULL,
          "= show current WPS status" },
index fd63ff08bee0a4f0f7e9ec151cac4e7379ac1e96..0801a93bcd6ed7b6bed2100ef5fd5803756d5434 100644 (file)
@@ -16,7 +16,7 @@ Subject: [PATCH] Remove some unnecessary control interface functionality
  else
 --- a/hostapd/ctrl_iface.c
 +++ b/hostapd/ctrl_iface.c
-@@ -4005,6 +4005,7 @@ static int hostapd_ctrl_iface_receive_pr
+@@ -4057,6 +4057,7 @@ static int hostapd_ctrl_iface_receive_pr
                                                      reply_size);
        } else if (os_strcmp(buf, "STATUS-DRIVER") == 0) {
                reply_len = hostapd_drv_status(hapd, reply, reply_size);
@@ -24,7 +24,7 @@ Subject: [PATCH] Remove some unnecessary control interface functionality
        } else if (os_strcmp(buf, "MIB") == 0) {
                reply_len = ieee802_11_get_mib(hapd, reply, reply_size);
                if (reply_len >= 0) {
-@@ -4046,6 +4047,7 @@ static int hostapd_ctrl_iface_receive_pr
+@@ -4098,6 +4099,7 @@ static int hostapd_ctrl_iface_receive_pr
        } else if (os_strncmp(buf, "STA-NEXT ", 9) == 0) {
                reply_len = hostapd_ctrl_iface_sta_next(hapd, buf + 9, reply,
                                                        reply_size);
@@ -96,7 +96,7 @@ Subject: [PATCH] Remove some unnecessary control interface functionality
  
  #ifdef CONFIG_P2P_MANAGER
  static int p2p_manager_disconnect(struct hostapd_data *hapd, u16 stype,
-@@ -1010,12 +1011,12 @@ int hostapd_ctrl_iface_status(struct hos
+@@ -1016,12 +1017,12 @@ int hostapd_ctrl_iface_status(struct hos
                        return len;
                len += ret;
        }
@@ -113,7 +113,7 @@ Subject: [PATCH] Remove some unnecessary control interface functionality
                if (os_snprintf_error(buflen - len, ret))
 --- a/src/ap/ieee802_1x.c
 +++ b/src/ap/ieee802_1x.c
-@@ -2848,6 +2848,7 @@ static const char * bool_txt(bool val)
+@@ -2869,6 +2869,7 @@ static const char * bool_txt(bool val)
        return val ? "TRUE" : "FALSE";
  }
  
@@ -121,7 +121,7 @@ Subject: [PATCH] Remove some unnecessary control interface functionality
  
  int ieee802_1x_get_mib(struct hostapd_data *hapd, char *buf, size_t buflen)
  {
-@@ -3034,6 +3035,7 @@ int ieee802_1x_get_mib_sta(struct hostap
+@@ -3055,6 +3056,7 @@ int ieee802_1x_get_mib_sta(struct hostap
        return len;
  }
  
@@ -131,7 +131,7 @@ Subject: [PATCH] Remove some unnecessary control interface functionality
  static void ieee802_1x_wnm_notif_send(void *eloop_ctx, void *timeout_ctx)
 --- a/src/ap/wpa_auth.c
 +++ b/src/ap/wpa_auth.c
-@@ -5956,6 +5956,7 @@ static const char * wpa_bool_txt(int val
+@@ -6141,6 +6141,7 @@ static const char * wpa_bool_txt(int val
        return val ? "TRUE" : "FALSE";
  }
  
@@ -139,7 +139,7 @@ Subject: [PATCH] Remove some unnecessary control interface functionality
  
  #define RSN_SUITE "%02x-%02x-%02x-%d"
  #define RSN_SUITE_ARG(s) \
-@@ -6108,7 +6109,7 @@ int wpa_get_mib_sta(struct wpa_state_mac
+@@ -6293,7 +6294,7 @@ int wpa_get_mib_sta(struct wpa_state_mac
  
        return len;
  }
@@ -150,7 +150,7 @@ Subject: [PATCH] Remove some unnecessary control interface functionality
  {
 --- a/src/rsn_supp/wpa.c
 +++ b/src/rsn_supp/wpa.c
-@@ -3974,6 +3974,8 @@ static u32 wpa_key_mgmt_suite(struct wpa
+@@ -4155,6 +4155,8 @@ static u32 wpa_key_mgmt_suite(struct wpa
  }
  
  
@@ -159,7 +159,7 @@ Subject: [PATCH] Remove some unnecessary control interface functionality
  #define RSN_SUITE "%02x-%02x-%02x-%d"
  #define RSN_SUITE_ARG(s) \
  ((s) >> 24) & 0xff, ((s) >> 16) & 0xff, ((s) >> 8) & 0xff, (s) & 0xff
-@@ -4055,6 +4057,7 @@ int wpa_sm_get_mib(struct wpa_sm *sm, ch
+@@ -4236,6 +4238,7 @@ int wpa_sm_get_mib(struct wpa_sm *sm, ch
  
        return (int) len;
  }
@@ -201,7 +201,7 @@ Subject: [PATCH] Remove some unnecessary control interface functionality
                if (wpa_s->ap_iface) {
                        pos += ap_ctrl_iface_wpa_get_status(wpa_s, pos,
                                                            end - pos,
-@@ -12561,6 +12561,7 @@ char * wpa_supplicant_ctrl_iface_process
+@@ -12620,6 +12620,7 @@ char * wpa_supplicant_ctrl_iface_process
                        reply_len = -1;
        } else if (os_strncmp(buf, "NOTE ", 5) == 0) {
                wpa_printf(MSG_INFO, "NOTE: %s", buf + 5);
@@ -209,7 +209,7 @@ Subject: [PATCH] Remove some unnecessary control interface functionality
        } else if (os_strcmp(buf, "MIB") == 0) {
                reply_len = wpa_sm_get_mib(wpa_s->wpa, reply, reply_size);
                if (reply_len >= 0) {
-@@ -12573,6 +12574,7 @@ char * wpa_supplicant_ctrl_iface_process
+@@ -12632,6 +12633,7 @@ char * wpa_supplicant_ctrl_iface_process
                                reply_size - reply_len);
  #endif /* CONFIG_MACSEC */
                }
@@ -217,7 +217,7 @@ Subject: [PATCH] Remove some unnecessary control interface functionality
        } else if (os_strncmp(buf, "STATUS", 6) == 0) {
                reply_len = wpa_supplicant_ctrl_iface_status(
                        wpa_s, buf + 6, reply, reply_size);
-@@ -13061,6 +13063,7 @@ char * wpa_supplicant_ctrl_iface_process
+@@ -13120,6 +13122,7 @@ char * wpa_supplicant_ctrl_iface_process
                reply_len = wpa_supplicant_ctrl_iface_bss(
                        wpa_s, buf + 4, reply, reply_size);
  #ifdef CONFIG_AP
@@ -225,7 +225,7 @@ Subject: [PATCH] Remove some unnecessary control interface functionality
        } else if (os_strcmp(buf, "STA-FIRST") == 0) {
                reply_len = ap_ctrl_iface_sta_first(wpa_s, reply, reply_size);
        } else if (os_strncmp(buf, "STA ", 4) == 0) {
-@@ -13069,12 +13072,15 @@ char * wpa_supplicant_ctrl_iface_process
+@@ -13128,12 +13131,15 @@ char * wpa_supplicant_ctrl_iface_process
        } else if (os_strncmp(buf, "STA-NEXT ", 9) == 0) {
                reply_len = ap_ctrl_iface_sta_next(wpa_s, buf + 9, reply,
                                                   reply_size);
index 35a5abd2b23e1b05248fcaab4c39fbaf17b6e78c..6deb2722b3719838b9b1862dbd043592b350964b 100644 (file)
@@ -5,7 +5,7 @@ Subject: [PATCH] Add noscan, no_ht_coex config options
 
 --- a/hostapd/config_file.c
 +++ b/hostapd/config_file.c
-@@ -3680,6 +3680,10 @@ static int hostapd_config_fill(struct ho
+@@ -3747,6 +3747,10 @@ static int hostapd_config_fill(struct ho
                if (bss->ocv && !bss->ieee80211w)
                        bss->ieee80211w = 1;
  #endif /* CONFIG_OCV */
@@ -18,7 +18,7 @@ Subject: [PATCH] Add noscan, no_ht_coex config options
        } else if (os_strcmp(buf, "ht_capab") == 0) {
 --- a/src/ap/ap_config.h
 +++ b/src/ap/ap_config.h
-@@ -1108,6 +1108,8 @@ struct hostapd_config {
+@@ -1122,6 +1122,8 @@ struct hostapd_config {
  
        int ht_op_mode_fixed;
        u16 ht_capab;
@@ -29,7 +29,7 @@ Subject: [PATCH] Add noscan, no_ht_coex config options
        int no_pri_sec_switch;
 --- a/src/ap/hw_features.c
 +++ b/src/ap/hw_features.c
-@@ -551,7 +551,8 @@ static int ieee80211n_check_40mhz(struct
+@@ -573,7 +573,8 @@ static int ieee80211n_check_40mhz(struct
        int ret;
  
        /* Check that HT40 is used and PRI / SEC switch is allowed */
@@ -41,7 +41,7 @@ Subject: [PATCH] Add noscan, no_ht_coex config options
        hostapd_set_state(iface, HAPD_IFACE_HT_SCAN);
 --- a/src/ap/ieee802_11_ht.c
 +++ b/src/ap/ieee802_11_ht.c
-@@ -239,6 +239,9 @@ void hostapd_2040_coex_action(struct hos
+@@ -279,6 +279,9 @@ void hostapd_2040_coex_action(struct hos
                return;
        }
  
@@ -51,7 +51,7 @@ Subject: [PATCH] Add noscan, no_ht_coex config options
        if (len < IEEE80211_HDRLEN + 2 + sizeof(*bc_ie)) {
                wpa_printf(MSG_DEBUG,
                           "Ignore too short 20/40 BSS Coexistence Management frame");
-@@ -399,6 +402,9 @@ void ht40_intolerant_add(struct hostapd_
+@@ -439,6 +442,9 @@ void ht40_intolerant_add(struct hostapd_
        if (iface->current_mode->mode != HOSTAPD_MODE_IEEE80211G)
                return;
  
index 1f96a81eb03a0c130917605fd652a973324b0ecb..e5fd053232705f34d2c689ea76f3c38cebc07688 100644 (file)
@@ -47,7 +47,7 @@ Subject: [PATCH] Allow HT40 also on 2.4GHz if noscan option is set, which also
                /*
 --- a/wpa_supplicant/wpa_supplicant.c
 +++ b/wpa_supplicant/wpa_supplicant.c
-@@ -2881,7 +2881,7 @@ static bool ibss_mesh_can_use_vht(struct
+@@ -2903,7 +2903,7 @@ static bool ibss_mesh_can_use_vht(struct
                                  const struct wpa_ssid *ssid,
                                  struct hostapd_hw_modes *mode)
  {
@@ -56,7 +56,7 @@ Subject: [PATCH] Allow HT40 also on 2.4GHz if noscan option is set, which also
                return false;
  
        if (!drv_supports_vht(wpa_s, ssid))
-@@ -2954,7 +2954,7 @@ static void ibss_mesh_select_40mhz(struc
+@@ -2976,7 +2976,7 @@ static void ibss_mesh_select_40mhz(struc
        int i, res;
        unsigned int j;
        static const int ht40plus[] = {
@@ -65,7 +65,7 @@ Subject: [PATCH] Allow HT40 also on 2.4GHz if noscan option is set, which also
                149, 157, 165, 173, 184, 192
        };
        int ht40 = -1;
-@@ -3205,7 +3205,7 @@ void ibss_mesh_setup_freq(struct wpa_sup
+@@ -3227,7 +3227,7 @@ void ibss_mesh_setup_freq(struct wpa_sup
        int ieee80211_mode = wpas_mode_to_ieee80211_mode(ssid->mode);
        enum hostapd_hw_mode hw_mode;
        struct hostapd_hw_modes *mode = NULL;
@@ -74,7 +74,7 @@ Subject: [PATCH] Allow HT40 also on 2.4GHz if noscan option is set, which also
        u8 channel;
        bool is_6ghz, is_24ghz;
        bool dfs_enabled = wpa_s->conf->country[0] && (wpa_s->drv_flags & WPA_DRIVER_FLAGS_RADAR);
-@@ -3249,6 +3249,8 @@ void ibss_mesh_setup_freq(struct wpa_sup
+@@ -3271,6 +3271,8 @@ void ibss_mesh_setup_freq(struct wpa_sup
                freq->he_enabled = ibss_mesh_can_use_he(wpa_s, ssid, mode,
                                                        ieee80211_mode);
        freq->channel = channel;
index 637f5c31a8d79559bdf073cb39503632e0232f5d..038bce9e9d3589c3501914a30f20268af6a6bf7e 100644 (file)
@@ -5,7 +5,7 @@ Subject: [PATCH] rescan_immediately.patch
 
 --- a/wpa_supplicant/wpa_supplicant.c
 +++ b/wpa_supplicant/wpa_supplicant.c
-@@ -6001,7 +6001,7 @@ wpa_supplicant_alloc(struct wpa_supplica
+@@ -6073,7 +6073,7 @@ wpa_supplicant_alloc(struct wpa_supplica
        if (wpa_s == NULL)
                return NULL;
        wpa_s->scan_req = INITIAL_SCAN_REQ;
index e4cc33b51224496229aa4add7f6b50442952c534..e757a6df00527cd1a45bd2b9410d522a400bd5d1 100644 (file)
@@ -5,7 +5,7 @@ Subject: [PATCH] nl80211_fix_set_freq.patch
 
 --- a/src/drivers/driver_nl80211.c
 +++ b/src/drivers/driver_nl80211.c
-@@ -5494,7 +5494,7 @@ static int nl80211_set_channel(struct i8
+@@ -5512,7 +5512,7 @@ static int nl80211_set_channel(struct i8
                   freq->he_enabled, freq->eht_enabled, freq->bandwidth,
                   freq->center_freq1, freq->center_freq2);
  
index e73f817248fbdc4a6232c279643b4e579097622c..c3b3ded908cc82112e985f12306ff0470582a20d 100644 (file)
@@ -4,7 +4,7 @@ Subject: [PATCH] nl80211_del_beacon_bss.patch
 
 --- a/src/drivers/driver_nl80211.c
 +++ b/src/drivers/driver_nl80211.c
-@@ -6183,8 +6183,7 @@ static void nl80211_teardown_ap(struct i
+@@ -6253,8 +6253,7 @@ static void nl80211_teardown_ap(struct i
                nl80211_mgmt_unsubscribe(bss, "AP teardown");
  
        nl80211_put_wiphy_data_ap(bss);
index e68edacb44062c14cf0a1ff8c26d912352be2e93..29026ac9d1c0a960bc53403cdf23453054cd9323 100644 (file)
@@ -11,7 +11,7 @@ if CONFIG_CTRL_IFACE_MIB is not defined.
 
 --- a/hostapd/hostapd_cli.c
 +++ b/hostapd/hostapd_cli.c
-@@ -753,7 +753,7 @@ static int wpa_ctrl_command_sta(struct w
+@@ -761,7 +761,7 @@ static int wpa_ctrl_command_sta(struct w
        }
  
        buf[len] = '\0';
index 9a2f58d52a047e439a7a7c4f0b6ad5c0a7f833d6..cc7b1317872f41b56c4c18e4bce5bbac48abb94c 100644 (file)
@@ -14,7 +14,7 @@ Signed-hostap: Antonio Quartulli <ordex@autistici.org>
 
 --- a/src/drivers/driver.h
 +++ b/src/drivers/driver.h
-@@ -979,6 +979,9 @@ struct wpa_driver_associate_params {
+@@ -1004,6 +1004,9 @@ struct wpa_driver_associate_params {
         * responsible for selecting with which BSS to associate. */
        const u8 *bssid;
  
@@ -155,7 +155,7 @@ Signed-hostap: Antonio Quartulli <ordex@autistici.org>
         * macsec_policy - Determines the policy for MACsec secure session
 --- a/wpa_supplicant/wpa_supplicant.c
 +++ b/wpa_supplicant/wpa_supplicant.c
-@@ -4370,6 +4370,12 @@ static void wpas_start_assoc_cb(struct w
+@@ -4435,6 +4435,12 @@ static void wpas_start_assoc_cb(struct w
                        params.beacon_int = ssid->beacon_int;
                else
                        params.beacon_int = wpa_s->conf->beacon_int;
index 54ef753fc40ec30e60ee3d82ec0df0b37f89b27c..80ccb1c2071b467e4616325b24ee50a1ac147f70 100644 (file)
@@ -19,7 +19,7 @@ Tested-by: Simon Wunderlich <simon.wunderlich@openmesh.com>
 
 --- a/src/drivers/driver.h
 +++ b/src/drivers/driver.h
-@@ -1889,6 +1889,7 @@ struct wpa_driver_mesh_join_params {
+@@ -1920,6 +1920,7 @@ struct wpa_driver_mesh_join_params {
  #define WPA_DRIVER_MESH_FLAG_AMPE     0x00000008
        unsigned int flags;
        bool handle_dfs;
@@ -29,7 +29,7 @@ Tested-by: Simon Wunderlich <simon.wunderlich@openmesh.com>
  struct wpa_driver_set_key_params {
 --- a/src/drivers/driver_nl80211.c
 +++ b/src/drivers/driver_nl80211.c
-@@ -11983,6 +11983,18 @@ static int nl80211_put_mesh_id(struct nl
+@@ -12142,6 +12142,18 @@ static int nl80211_put_mesh_id(struct nl
  }
  
  
@@ -48,7 +48,7 @@ Tested-by: Simon Wunderlich <simon.wunderlich@openmesh.com>
  static int nl80211_put_mesh_config(struct nl_msg *msg,
                                   struct wpa_driver_mesh_bss_params *params)
  {
-@@ -12044,6 +12056,7 @@ static int nl80211_join_mesh(struct i802
+@@ -12203,6 +12215,7 @@ static int nl80211_join_mesh(struct i802
            nl80211_put_basic_rates(msg, params->basic_rates) ||
            nl80211_put_mesh_id(msg, params->meshid, params->meshid_len) ||
            nl80211_put_beacon_int(msg, params->beacon_int) ||
index 3d995fe3b0394a65c0173048126d3f9b659693a4..9d39db5a634eeec75f0d253001f525bc425106c9 100644 (file)
@@ -5,7 +5,7 @@ Subject: [PATCH] Fix issues with disabling obss scan when using fixed_freq on
 
 --- a/wpa_supplicant/wpa_supplicant.c
 +++ b/wpa_supplicant/wpa_supplicant.c
-@@ -3212,6 +3212,10 @@ void ibss_mesh_setup_freq(struct wpa_sup
+@@ -3234,6 +3234,10 @@ void ibss_mesh_setup_freq(struct wpa_sup
  
        freq->freq = ssid->frequency;
  
index e291615526d3dd70239744f8630771cba2b528dc..16962024456d49d4346e1a2150f70c63e15e706f 100644 (file)
@@ -13,7 +13,7 @@ Signed-off-by: David Bauer <mail@david-bauer.net>
 
 --- a/hostapd/config_file.c
 +++ b/hostapd/config_file.c
-@@ -3734,6 +3734,8 @@ static int hostapd_config_fill(struct ho
+@@ -3801,6 +3801,8 @@ static int hostapd_config_fill(struct ho
        } else if (os_strcmp(buf, "he_bss_color") == 0) {
                conf->he_op.he_bss_color = atoi(pos) & 0x3f;
                conf->he_op.he_bss_color_disabled = 0;
index 999a2a378109da7de3f58724ab2cd40695b12d54..be09ed319c9663374420a9d93ac5683daa9293f7 100644 (file)
@@ -10,7 +10,7 @@ method.
 
 --- a/src/ap/hostapd.h
 +++ b/src/ap/hostapd.h
-@@ -168,6 +168,21 @@ struct hostapd_sae_commit_queue {
+@@ -185,6 +185,21 @@ struct mld_link_info {
  };
  
  /**
@@ -32,7 +32,7 @@ method.
   * struct hostapd_data - hostapd per-BSS data structure
   */
  struct hostapd_data {
-@@ -181,6 +196,9 @@ struct hostapd_data {
+@@ -198,6 +213,9 @@ struct hostapd_data {
  
        u8 own_addr[ETH_ALEN];
  
index b4caabd82620253e7528735287bc9dabe2c8cd5b..fb3bfb012030bdd5e4cfc83d8fadd76a4caba0d2 100644 (file)
@@ -53,7 +53,7 @@ probe/assoc/auth requests via object subscribe.
        }
 --- a/src/ap/beacon.c
 +++ b/src/ap/beacon.c
-@@ -1357,6 +1357,12 @@ void handle_probe_req(struct hostapd_dat
+@@ -1418,6 +1418,12 @@ void handle_probe_req(struct hostapd_dat
        int mld_id;
        u16 links;
  #endif /* CONFIG_IEEE80211BE */
@@ -66,7 +66,7 @@ probe/assoc/auth requests via object subscribe.
  
        if (hapd->iconf->rssi_ignore_probe_request && ssi_signal &&
            ssi_signal < hapd->iconf->rssi_ignore_probe_request)
-@@ -1543,6 +1549,12 @@ void handle_probe_req(struct hostapd_dat
+@@ -1604,6 +1610,12 @@ void handle_probe_req(struct hostapd_dat
        }
  #endif /* CONFIG_P2P */
  
@@ -81,7 +81,7 @@ probe/assoc/auth requests via object subscribe.
  
 --- a/src/ap/dfs.c
 +++ b/src/ap/dfs.c
-@@ -1236,6 +1236,8 @@ int hostapd_dfs_pre_cac_expired(struct h
+@@ -1243,6 +1243,8 @@ int hostapd_dfs_pre_cac_expired(struct h
                "freq=%d ht_enabled=%d chan_offset=%d chan_width=%d cf1=%d cf2=%d",
                freq, ht_enabled, chan_offset, chan_width, cf1, cf2);
  
@@ -92,7 +92,7 @@ probe/assoc/auth requests via object subscribe.
                return 0;
 --- a/src/ap/drv_callbacks.c
 +++ b/src/ap/drv_callbacks.c
-@@ -268,6 +268,10 @@ int hostapd_notif_assoc(struct hostapd_d
+@@ -317,6 +317,10 @@ int hostapd_notif_assoc(struct hostapd_d
        struct hostapd_iface *iface = hapd->iface;
  #endif /* CONFIG_OWE */
        bool updated = false;
@@ -103,7 +103,7 @@ probe/assoc/auth requests via object subscribe.
  
        if (addr == NULL) {
                /*
-@@ -412,6 +416,12 @@ int hostapd_notif_assoc(struct hostapd_d
+@@ -461,6 +465,12 @@ int hostapd_notif_assoc(struct hostapd_d
                goto fail;
        }
  
@@ -126,7 +126,7 @@ probe/assoc/auth requests via object subscribe.
        accounting_deinit(hapd);
        hostapd_deinit_wpa(hapd);
        vlan_deinit(hapd);
-@@ -1303,6 +1304,8 @@ static int hostapd_start_beacon(struct h
+@@ -1316,6 +1317,8 @@ static int hostapd_start_beacon(struct h
        if (hapd->driver && hapd->driver->set_operstate)
                hapd->driver->set_operstate(hapd->drv_priv, 1);
  
@@ -135,7 +135,7 @@ probe/assoc/auth requests via object subscribe.
        return 0;
  }
  
-@@ -2481,6 +2484,7 @@ static int hostapd_setup_interface_compl
+@@ -2525,6 +2528,7 @@ static int hostapd_setup_interface_compl
        if (err)
                goto fail;
  
@@ -143,7 +143,7 @@ probe/assoc/auth requests via object subscribe.
        wpa_printf(MSG_DEBUG, "Completing interface initialization");
        if (iface->freq) {
  #ifdef NEED_AP_MLME
-@@ -2700,6 +2704,7 @@ dfs_offload:
+@@ -2750,6 +2754,7 @@ dfs_offload:
  
  fail:
        wpa_printf(MSG_ERROR, "Interface initialization failed");
@@ -151,7 +151,7 @@ probe/assoc/auth requests via object subscribe.
  
        if (iface->is_no_ir) {
                hostapd_set_state(iface, HAPD_IFACE_NO_IR);
-@@ -3416,6 +3421,7 @@ void hostapd_interface_deinit_free(struc
+@@ -3478,6 +3483,7 @@ void hostapd_interface_deinit_free(struc
                   (unsigned int) iface->conf->num_bss);
        driver = iface->bss[0]->driver;
        drv_priv = iface->bss[0]->drv_priv;
@@ -169,7 +169,7 @@ probe/assoc/auth requests via object subscribe.
  
  #define OCE_STA_CFON_ENABLED(hapd) \
        ((hapd->conf->oce & OCE_STA_CFON) && \
-@@ -189,6 +190,7 @@ struct hostapd_data {
+@@ -206,6 +207,7 @@ struct hostapd_data {
        struct hostapd_iface *iface;
        struct hostapd_config *iconf;
        struct hostapd_bss_config *conf;
@@ -177,7 +177,7 @@ probe/assoc/auth requests via object subscribe.
        int interface_added; /* virtual interface added for this BSS */
        unsigned int started:1;
        unsigned int disabled:1;
-@@ -743,6 +745,7 @@ hostapd_alloc_bss_data(struct hostapd_if
+@@ -776,6 +778,7 @@ hostapd_alloc_bss_data(struct hostapd_if
                       struct hostapd_bss_config *bss);
  int hostapd_setup_interface(struct hostapd_iface *iface);
  int hostapd_setup_interface_complete(struct hostapd_iface *iface, int err);
@@ -187,7 +187,7 @@ probe/assoc/auth requests via object subscribe.
  struct hostapd_iface * hostapd_alloc_iface(void);
 --- a/src/ap/ieee802_11.c
 +++ b/src/ap/ieee802_11.c
-@@ -2874,7 +2874,7 @@ static void handle_auth(struct hostapd_d
+@@ -2897,7 +2897,7 @@ static void handle_auth(struct hostapd_d
        u16 auth_alg, auth_transaction, status_code;
        u16 resp = WLAN_STATUS_SUCCESS;
        struct sta_info *sta = NULL;
@@ -196,7 +196,7 @@ probe/assoc/auth requests via object subscribe.
        u16 fc;
        const u8 *challenge = NULL;
        u8 resp_ies[2 + WLAN_AUTH_CHALLENGE_LEN];
-@@ -2885,6 +2885,11 @@ static void handle_auth(struct hostapd_d
+@@ -2908,6 +2908,11 @@ static void handle_auth(struct hostapd_d
  #ifdef CONFIG_IEEE80211BE
        bool mld_sta = false;
  #endif /* CONFIG_IEEE80211BE */
@@ -208,7 +208,7 @@ probe/assoc/auth requests via object subscribe.
  
        if (len < IEEE80211_HDRLEN + sizeof(mgmt->u.auth)) {
                wpa_printf(MSG_INFO, "handle_auth - too short payload (len=%lu)",
-@@ -3078,6 +3083,13 @@ static void handle_auth(struct hostapd_d
+@@ -3104,6 +3109,13 @@ static void handle_auth(struct hostapd_d
                resp = WLAN_STATUS_UNSPECIFIED_FAILURE;
                goto fail;
        }
@@ -222,7 +222,7 @@ probe/assoc/auth requests via object subscribe.
        if (res == HOSTAPD_ACL_PENDING)
                return;
  
-@@ -5338,7 +5350,7 @@ static void handle_assoc(struct hostapd_
+@@ -5367,7 +5379,7 @@ static void handle_assoc(struct hostapd_
        int resp = WLAN_STATUS_SUCCESS;
        u16 reply_res = WLAN_STATUS_UNSPECIFIED_FAILURE;
        const u8 *pos;
@@ -231,7 +231,7 @@ probe/assoc/auth requests via object subscribe.
        struct sta_info *sta;
        u8 *tmp = NULL;
  #ifdef CONFIG_FILS
-@@ -5580,6 +5592,11 @@ static void handle_assoc(struct hostapd_
+@@ -5609,6 +5621,11 @@ static void handle_assoc(struct hostapd_
                left = res;
        }
  #endif /* CONFIG_FILS */
@@ -243,7 +243,7 @@ probe/assoc/auth requests via object subscribe.
  
        /* followed by SSID and Supported rates; and HT capabilities if 802.11n
         * is used */
-@@ -5682,6 +5699,13 @@ static void handle_assoc(struct hostapd_
+@@ -5711,6 +5728,13 @@ static void handle_assoc(struct hostapd_
        if (set_beacon)
                ieee802_11_update_beacons(hapd->iface);
  
@@ -257,7 +257,7 @@ probe/assoc/auth requests via object subscribe.
   fail:
  
        /*
-@@ -5911,6 +5935,7 @@ static void handle_disassoc(struct hosta
+@@ -5940,6 +5964,7 @@ static void handle_disassoc(struct hosta
                           (unsigned long) len);
                return;
        }
@@ -265,7 +265,7 @@ probe/assoc/auth requests via object subscribe.
  
        sta = ap_get_sta(hapd, mgmt->sa);
        if (!sta) {
-@@ -5942,6 +5967,8 @@ static void handle_deauth(struct hostapd
+@@ -5971,6 +5996,8 @@ static void handle_deauth(struct hostapd
        /* Clear the PTKSA cache entries for PASN */
        ptksa_cache_flush(hapd->ptksa, mgmt->sa, WPA_CIPHER_NONE);
  
@@ -382,7 +382,7 @@ probe/assoc/auth requests via object subscribe.
                    hapd->msg_ctx_parent != hapd->msg_ctx)
 --- a/src/ap/sta_info.h
 +++ b/src/ap/sta_info.h
-@@ -317,6 +317,7 @@ struct sta_info {
+@@ -304,6 +304,7 @@ struct sta_info {
  #endif /* CONFIG_TESTING_OPTIONS */
  #ifdef CONFIG_AIRTIME_POLICY
        unsigned int airtime_weight;
@@ -470,7 +470,7 @@ probe/assoc/auth requests via object subscribe.
  }
 --- a/src/ap/wpa_auth_glue.c
 +++ b/src/ap/wpa_auth_glue.c
-@@ -279,6 +279,7 @@ static void hostapd_wpa_auth_psk_failure
+@@ -328,6 +328,7 @@ static void hostapd_wpa_auth_psk_failure
        struct hostapd_data *hapd = ctx;
        wpa_msg(hapd->msg_ctx, MSG_INFO, AP_STA_POSSIBLE_PSK_MISMATCH MACSTR,
                MAC2STR(addr));
@@ -675,7 +675,7 @@ probe/assoc/auth requests via object subscribe.
                        break;
 --- a/wpa_supplicant/wpa_supplicant.c
 +++ b/wpa_supplicant/wpa_supplicant.c
-@@ -7847,6 +7847,8 @@ struct wpa_supplicant * wpa_supplicant_a
+@@ -7920,6 +7920,8 @@ struct wpa_supplicant * wpa_supplicant_a
        }
  #endif /* CONFIG_P2P */
  
@@ -684,7 +684,7 @@ probe/assoc/auth requests via object subscribe.
        return wpa_s;
  }
  
-@@ -7873,6 +7875,8 @@ int wpa_supplicant_remove_iface(struct w
+@@ -7946,6 +7948,8 @@ int wpa_supplicant_remove_iface(struct w
        struct wpa_supplicant *parent = wpa_s->parent;
  #endif /* CONFIG_MESH */
  
@@ -693,7 +693,7 @@ probe/assoc/auth requests via object subscribe.
        /* Remove interface from the global list of interfaces */
        prev = global->ifaces;
        if (prev == wpa_s) {
-@@ -8219,8 +8223,12 @@ int wpa_supplicant_run(struct wpa_global
+@@ -8292,8 +8296,12 @@ int wpa_supplicant_run(struct wpa_global
        eloop_register_signal_terminate(wpa_supplicant_terminate, global);
        eloop_register_signal_reconfig(wpa_supplicant_reconfig, global);
  
index e242e3ae5034d93132f545ccf356d49351435715..737966201491f147e343385cfced5a238b5e9b19 100644 (file)
@@ -34,7 +34,7 @@ as adding/removing interfaces.
  ifdef CONFIG_CODE_COVERAGE
 --- a/hostapd/ctrl_iface.c
 +++ b/hostapd/ctrl_iface.c
-@@ -5603,6 +5603,7 @@ try_again:
+@@ -5998,6 +5998,7 @@ try_again:
                return -1;
        }
  
@@ -42,7 +42,7 @@ as adding/removing interfaces.
        wpa_msg_register_cb(hostapd_ctrl_iface_msg_cb);
  
        return 0;
-@@ -5704,6 +5705,7 @@ fail:
+@@ -6099,6 +6100,7 @@ fail:
        os_free(fname);
  
        interface->global_ctrl_sock = s;
@@ -52,7 +52,7 @@ as adding/removing interfaces.
  
 --- a/hostapd/main.c
 +++ b/hostapd/main.c
-@@ -1024,6 +1024,7 @@ int main(int argc, char *argv[])
+@@ -1033,6 +1033,7 @@ int main(int argc, char *argv[])
        }
  
        hostapd_global_ctrl_iface_init(&interfaces);
@@ -60,7 +60,7 @@ as adding/removing interfaces.
  
        if (hostapd_global_run(&interfaces, daemonize, pid_file)) {
                wpa_printf(MSG_ERROR, "Failed to start eloop");
-@@ -1033,6 +1034,7 @@ int main(int argc, char *argv[])
+@@ -1042,6 +1043,7 @@ int main(int argc, char *argv[])
        ret = 0;
  
   out:
@@ -70,7 +70,7 @@ as adding/removing interfaces.
        for (i = 0; i < interfaces.count; i++) {
 --- a/src/ap/ap_drv_ops.h
 +++ b/src/ap/ap_drv_ops.h
-@@ -404,6 +404,23 @@ static inline int hostapd_drv_stop_ap(st
+@@ -409,6 +409,23 @@ static inline int hostapd_drv_stop_ap(st
        return hapd->driver->stop_ap(hapd->drv_priv, link_id);
  }
  
@@ -113,7 +113,7 @@ as adding/removing interfaces.
        hostapd_ubus_free_bss(hapd);
        accounting_deinit(hapd);
        hostapd_deinit_wpa(hapd);
-@@ -716,6 +719,7 @@ void hostapd_cleanup_iface_partial(struc
+@@ -729,6 +732,7 @@ void hostapd_cleanup_iface_partial(struc
  static void hostapd_cleanup_iface(struct hostapd_iface *iface)
  {
        wpa_printf(MSG_DEBUG, "%s(%p)", __func__, iface);
@@ -121,7 +121,7 @@ as adding/removing interfaces.
        eloop_cancel_timeout(hostapd_interface_setup_failure_handler, iface,
                             NULL);
  
-@@ -1305,6 +1309,7 @@ static int hostapd_start_beacon(struct h
+@@ -1318,6 +1322,7 @@ static int hostapd_start_beacon(struct h
                hapd->driver->set_operstate(hapd->drv_priv, 1);
  
        hostapd_ubus_add_bss(hapd);
@@ -129,7 +129,7 @@ as adding/removing interfaces.
  
        return 0;
  }
-@@ -1380,8 +1385,7 @@ static int hostapd_bss_radius_init(struc
+@@ -1393,8 +1398,7 @@ static int hostapd_bss_radius_init(struc
   * initialized. Most of the modules that are initialized here will be
   * deinitialized in hostapd_cleanup().
   */
@@ -139,7 +139,7 @@ as adding/removing interfaces.
  {
        struct hostapd_bss_config *conf = hapd->conf;
        u8 ssid[SSID_MAX_LEN + 1];
-@@ -2904,7 +2908,7 @@ hostapd_alloc_bss_data(struct hostapd_if
+@@ -2954,7 +2958,7 @@ hostapd_alloc_bss_data(struct hostapd_if
  }
  
  
@@ -148,7 +148,7 @@ as adding/removing interfaces.
  {
        if (!hapd)
                return;
-@@ -3953,7 +3957,8 @@ int hostapd_remove_iface(struct hapd_int
+@@ -4015,7 +4019,8 @@ int hostapd_remove_iface(struct hapd_int
                hapd_iface = interfaces->iface[i];
                if (hapd_iface == NULL)
                        return -1;
@@ -179,7 +179,7 @@ as adding/removing interfaces.
        int (*for_each_interface)(struct hapd_interfaces *interfaces,
                                  int (*cb)(struct hostapd_iface *iface,
                                            void *ctx), void *ctx);
-@@ -191,6 +196,7 @@ struct hostapd_data {
+@@ -208,6 +213,7 @@ struct hostapd_data {
        struct hostapd_config *iconf;
        struct hostapd_bss_config *conf;
        struct hostapd_ubus_bss ubus;
@@ -187,7 +187,7 @@ as adding/removing interfaces.
        int interface_added; /* virtual interface added for this BSS */
        unsigned int started:1;
        unsigned int disabled:1;
-@@ -548,6 +554,7 @@ struct hostapd_mld {
+@@ -577,6 +583,7 @@ struct hostapd_mld {
   */
  struct hostapd_iface {
        struct hapd_interfaces *interfaces;
@@ -195,7 +195,7 @@ as adding/removing interfaces.
        void *owner;
        char *config_fname;
        struct hostapd_config *conf;
-@@ -754,6 +761,8 @@ struct hostapd_iface * hostapd_init(stru
+@@ -787,6 +794,8 @@ struct hostapd_iface * hostapd_init(stru
  struct hostapd_iface *
  hostapd_interface_init_bss(struct hapd_interfaces *interfaces, const char *phy,
                           const char *config_fname, int debug);
@@ -206,7 +206,7 @@ as adding/removing interfaces.
  void hostapd_interface_deinit_free(struct hostapd_iface *iface);
 --- a/src/drivers/driver.h
 +++ b/src/drivers/driver.h
-@@ -3893,6 +3893,25 @@ struct wpa_driver_ops {
+@@ -3928,6 +3928,25 @@ struct wpa_driver_ops {
                         const char *ifname);
  
        /**
@@ -232,7 +232,7 @@ as adding/removing interfaces.
         * set_sta_vlan - Bind a station into a specific interface (AP only)
         * @priv: Private driver interface data
         * @ifname: Interface (main or virtual BSS or VLAN)
-@@ -6593,6 +6612,7 @@ union wpa_event_data {
+@@ -6720,6 +6739,7 @@ union wpa_event_data {
  
        /**
         * struct ch_switch
@@ -240,7 +240,7 @@ as adding/removing interfaces.
         * @freq: Frequency of new channel in MHz
         * @ht_enabled: Whether this is an HT channel
         * @ch_offset: Secondary channel offset
-@@ -6603,6 +6623,7 @@ union wpa_event_data {
+@@ -6730,6 +6750,7 @@ union wpa_event_data {
         * @punct_bitmap: Puncturing bitmap
         */
        struct ch_switch {
@@ -250,7 +250,7 @@ as adding/removing interfaces.
                int ch_offset;
 --- a/src/drivers/driver_nl80211.c
 +++ b/src/drivers/driver_nl80211.c
-@@ -75,6 +75,16 @@ enum nlmsgerr_attrs {
+@@ -77,6 +77,16 @@ enum nlmsgerr_attrs {
  
  #endif /* ANDROID */
  
@@ -267,7 +267,7 @@ as adding/removing interfaces.
  
  static struct nl_sock * nl_create_handle(struct nl_cb *cb, const char *dbg)
  {
-@@ -429,6 +439,11 @@ static int no_seq_check(struct nl_msg *m
+@@ -431,6 +441,11 @@ static int no_seq_check(struct nl_msg *m
        return NL_OK;
  }
  
@@ -279,7 +279,7 @@ as adding/removing interfaces.
  
  static void nl80211_nlmsg_clear(struct nl_msg *msg)
  {
-@@ -502,6 +517,8 @@ int send_and_recv(struct nl80211_global
+@@ -504,6 +519,8 @@ int send_and_recv(struct nl80211_global
        if (!msg)
                return -ENOMEM;
  
@@ -288,7 +288,7 @@ as adding/removing interfaces.
        err.err = -ENOMEM;
  
        s_nl_cb = nl_socket_get_cb(nl_handle);
-@@ -536,6 +553,7 @@ int send_and_recv(struct nl80211_global
+@@ -538,6 +555,7 @@ int send_and_recv(struct nl80211_global
        err.orig_msg = msg;
        err.err_info = err_info;
  
@@ -296,7 +296,7 @@ as adding/removing interfaces.
        nl_cb_err(cb, NL_CB_CUSTOM, error_handler, &err);
        nl_cb_set(cb, NL_CB_FINISH, NL_CB_CUSTOM, finish_handler, &err.err);
        if (ack_handler_custom) {
-@@ -939,6 +957,7 @@ nl80211_get_wiphy_data_ap(struct i802_bs
+@@ -941,6 +959,7 @@ nl80211_get_wiphy_data_ap(struct i802_bs
                        os_free(w);
                        return NULL;
                }
@@ -304,7 +304,7 @@ as adding/removing interfaces.
                nl_cb_set(w->nl_cb, NL_CB_SEQ_CHECK, NL_CB_CUSTOM,
                          no_seq_check, NULL);
                nl_cb_set(w->nl_cb, NL_CB_VALID, NL_CB_CUSTOM,
-@@ -1353,7 +1372,7 @@ static void wpa_driver_nl80211_event_rtm
+@@ -1355,7 +1374,7 @@ static void wpa_driver_nl80211_event_rtm
                }
                wpa_printf(MSG_DEBUG, "nl80211: Interface down (%s/%s)",
                           namebuf, ifname);
@@ -313,7 +313,7 @@ as adding/removing interfaces.
                        wpa_printf(MSG_DEBUG,
                                   "nl80211: Not the main interface (%s) - do not indicate interface down",
                                   drv->first_bss->ifname);
-@@ -1389,7 +1408,7 @@ static void wpa_driver_nl80211_event_rtm
+@@ -1391,7 +1410,7 @@ static void wpa_driver_nl80211_event_rtm
                }
                wpa_printf(MSG_DEBUG, "nl80211: Interface up (%s/%s)",
                           namebuf, ifname);
@@ -322,7 +322,7 @@ as adding/removing interfaces.
                        wpa_printf(MSG_DEBUG,
                                   "nl80211: Not the main interface (%s) - do not indicate interface up",
                                   drv->first_bss->ifname);
-@@ -2035,6 +2054,7 @@ static int wpa_driver_nl80211_init_nl_gl
+@@ -2037,6 +2056,7 @@ static int wpa_driver_nl80211_init_nl_gl
        genl_family_put(family);
        nl_cache_free(cache);
  
@@ -330,7 +330,7 @@ as adding/removing interfaces.
        nl_cb_set(global->nl_cb, NL_CB_SEQ_CHECK, NL_CB_CUSTOM,
                  no_seq_check, NULL);
        nl_cb_set(global->nl_cb, NL_CB_VALID, NL_CB_CUSTOM,
-@@ -2205,6 +2225,7 @@ static int nl80211_init_bss(struct i802_
+@@ -2207,6 +2227,7 @@ static int nl80211_init_bss(struct i802_
        if (!bss->nl_cb)
                return -1;
  
@@ -338,7 +338,7 @@ as adding/removing interfaces.
        nl_cb_set(bss->nl_cb, NL_CB_SEQ_CHECK, NL_CB_CUSTOM,
                  no_seq_check, NULL);
        nl_cb_set(bss->nl_cb, NL_CB_VALID, NL_CB_CUSTOM,
-@@ -8573,6 +8594,7 @@ static void *i802_init(struct hostapd_da
+@@ -8704,6 +8725,7 @@ static void *i802_init(struct hostapd_da
        char master_ifname[IFNAMSIZ];
        int ifindex, br_ifindex = 0;
        int br_added = 0;
@@ -346,7 +346,7 @@ as adding/removing interfaces.
  
        bss = wpa_driver_nl80211_drv_init(hapd, params->ifname,
                                          params->global_priv, 1,
-@@ -8632,21 +8654,17 @@ static void *i802_init(struct hostapd_da
+@@ -8763,21 +8785,17 @@ static void *i802_init(struct hostapd_da
            (params->num_bridge == 0 || !params->bridge[0]))
                add_ifidx(drv, br_ifindex, drv->ifindex);
  
@@ -378,7 +378,7 @@ as adding/removing interfaces.
        }
  
        if (drv->capa.flags2 & WPA_DRIVER_FLAGS2_CONTROL_PORT_RX) {
-@@ -9015,6 +9033,50 @@ static int wpa_driver_nl80211_if_remove(
+@@ -9146,6 +9164,50 @@ static int wpa_driver_nl80211_if_remove(
        return 0;
  }
  
@@ -429,7 +429,7 @@ as adding/removing interfaces.
  
  static int cookie_handler(struct nl_msg *msg, void *arg)
  {
-@@ -10803,6 +10865,37 @@ static bool nl80211_is_drv_shared(void *
+@@ -10962,6 +11024,37 @@ static bool nl80211_is_drv_shared(void *
  #endif /* CONFIG_IEEE80211BE */
  
  
@@ -467,7 +467,7 @@ as adding/removing interfaces.
  static int driver_nl80211_send_mlme(void *priv, const u8 *data,
                                    size_t data_len, int noack,
                                    unsigned int freq,
-@@ -14040,6 +14133,8 @@ const struct wpa_driver_ops wpa_driver_n
+@@ -14510,6 +14603,8 @@ const struct wpa_driver_ops wpa_driver_n
        .set_acl = wpa_driver_nl80211_set_acl,
        .if_add = wpa_driver_nl80211_if_add,
        .if_remove = driver_nl80211_if_remove,
@@ -478,7 +478,7 @@ as adding/removing interfaces.
        .sta_add = wpa_driver_nl80211_sta_add,
 --- a/src/drivers/driver_nl80211_event.c
 +++ b/src/drivers/driver_nl80211_event.c
-@@ -1196,6 +1196,7 @@ static void mlme_event_ch_switch(struct
+@@ -1197,6 +1197,7 @@ static void mlme_event_ch_switch(struct
                                 struct nlattr *bw, struct nlattr *cf1,
                                 struct nlattr *cf2,
                                 struct nlattr *punct_bitmap,
@@ -486,16 +486,16 @@ as adding/removing interfaces.
                                 int finished)
  {
        struct i802_bss *bss;
-@@ -1259,6 +1260,8 @@ static void mlme_event_ch_switch(struct
+@@ -1260,6 +1261,8 @@ static void mlme_event_ch_switch(struct
                data.ch_switch.cf1 = nla_get_u32(cf1);
        if (cf2)
                data.ch_switch.cf2 = nla_get_u32(cf2);
 +      if (count)
 +              data.ch_switch.count = nla_get_u32(count);
  
-       if (link)
+       if (link) {
                data.ch_switch.link_id = nla_get_u8(link);
-@@ -3999,6 +4002,7 @@ static void do_process_drv_event(struct
+@@ -4054,6 +4057,7 @@ static void do_process_drv_event(struct
                                     tb[NL80211_ATTR_CENTER_FREQ1],
                                     tb[NL80211_ATTR_CENTER_FREQ2],
                                     tb[NL80211_ATTR_PUNCT_BITMAP],
@@ -503,7 +503,7 @@ as adding/removing interfaces.
                                     0);
                break;
        case NL80211_CMD_CH_SWITCH_NOTIFY:
-@@ -4011,6 +4015,7 @@ static void do_process_drv_event(struct
+@@ -4066,6 +4070,7 @@ static void do_process_drv_event(struct
                                     tb[NL80211_ATTR_CENTER_FREQ1],
                                     tb[NL80211_ATTR_CENTER_FREQ2],
                                     tb[NL80211_ATTR_PUNCT_BITMAP],
@@ -596,7 +596,7 @@ as adding/removing interfaces.
  CFLAGS += -DEAP_SERVER -DEAP_SERVER_IDENTITY
 --- a/wpa_supplicant/events.c
 +++ b/wpa_supplicant/events.c
-@@ -6015,6 +6015,7 @@ void supplicant_event(void *ctx, enum wp
+@@ -6167,6 +6167,7 @@ void supplicant_event(void *ctx, enum wp
                event_to_string(event), event);
  #endif /* CONFIG_NO_STDOUT_DEBUG */
  
@@ -606,7 +606,7 @@ as adding/removing interfaces.
  #ifdef CONFIG_FST
 --- a/wpa_supplicant/wpa_supplicant.c
 +++ b/wpa_supplicant/wpa_supplicant.c
-@@ -1148,6 +1148,7 @@ void wpa_supplicant_set_state(struct wpa
+@@ -1151,6 +1151,7 @@ void wpa_supplicant_set_state(struct wpa
                sme_sched_obss_scan(wpa_s, 0);
        }
        wpa_s->wpa_state = state;
@@ -614,7 +614,7 @@ as adding/removing interfaces.
  
  #ifdef CONFIG_BGSCAN
        if (state == WPA_COMPLETED && wpa_s->current_ssid != wpa_s->bgscan_ssid)
-@@ -7848,6 +7849,7 @@ struct wpa_supplicant * wpa_supplicant_a
+@@ -7921,6 +7922,7 @@ struct wpa_supplicant * wpa_supplicant_a
  #endif /* CONFIG_P2P */
  
        wpas_ubus_add_bss(wpa_s);
@@ -622,7 +622,7 @@ as adding/removing interfaces.
  
        return wpa_s;
  }
-@@ -7875,6 +7877,7 @@ int wpa_supplicant_remove_iface(struct w
+@@ -7948,6 +7950,7 @@ int wpa_supplicant_remove_iface(struct w
        struct wpa_supplicant *parent = wpa_s->parent;
  #endif /* CONFIG_MESH */
  
@@ -630,7 +630,7 @@ as adding/removing interfaces.
        wpas_ubus_free_bss(wpa_s);
  
        /* Remove interface from the global list of interfaces */
-@@ -8185,6 +8188,7 @@ struct wpa_global * wpa_supplicant_init(
+@@ -8258,6 +8261,7 @@ struct wpa_global * wpa_supplicant_init(
  
        eloop_register_timeout(WPA_SUPPLICANT_CLEANUP_INTERVAL, 0,
                               wpas_periodic, global, NULL);
@@ -638,7 +638,7 @@ as adding/removing interfaces.
  
        return global;
  }
-@@ -8223,12 +8227,8 @@ int wpa_supplicant_run(struct wpa_global
+@@ -8296,12 +8300,8 @@ int wpa_supplicant_run(struct wpa_global
        eloop_register_signal_terminate(wpa_supplicant_terminate, global);
        eloop_register_signal_reconfig(wpa_supplicant_reconfig, global);
  
@@ -651,7 +651,7 @@ as adding/removing interfaces.
        return 0;
  }
  
-@@ -8261,6 +8261,8 @@ void wpa_supplicant_deinit(struct wpa_gl
+@@ -8334,6 +8334,8 @@ void wpa_supplicant_deinit(struct wpa_gl
  
        wpas_notify_supplicant_deinitialized(global);
  
index f9bdfa1e92c56ecf7f30c315e639a546ac64bbab..54045476477fe6035e686c1d8fb52c3e837ee0b2 100644 (file)
@@ -8,7 +8,7 @@ as adding/removing interfaces.
 
 --- a/hostapd/config_file.c
 +++ b/hostapd/config_file.c
-@@ -5132,7 +5132,12 @@ struct hostapd_config * hostapd_config_r
+@@ -5207,7 +5207,12 @@ struct hostapd_config * hostapd_config_r
        int errors = 0;
        size_t i;
  
index 2dc5eab65a0740675509dcae722fda93e3fbc648..d4c6b1445647e879ee5f25c7619bad869b8ec84e 100644 (file)
@@ -8,7 +8,7 @@ was provided by the config
 
 --- a/hostapd/config_file.c
 +++ b/hostapd/config_file.c
-@@ -3583,6 +3583,8 @@ static int hostapd_config_fill(struct ho
+@@ -3646,6 +3646,8 @@ static int hostapd_config_fill(struct ho
  #ifndef CONFIG_NO_VLAN
        } else if (os_strcmp(buf, "dynamic_vlan") == 0) {
                bss->ssid.dynamic_vlan = atoi(pos);
index 441a21e8d8eed420b089a2c1f0e5889ccfc0c888..56750352f377c078fba1e9f3d93f8d483c294ed3 100644 (file)
@@ -11,7 +11,7 @@ instead rely entirely on netifd handling this properly
 
 --- a/hostapd/config_file.c
 +++ b/hostapd/config_file.c
-@@ -2447,6 +2447,8 @@ static int hostapd_config_fill(struct ho
+@@ -2472,6 +2472,8 @@ static int hostapd_config_fill(struct ho
                           sizeof(conf->bss[0]->iface));
        } else if (os_strcmp(buf, "bridge") == 0) {
                os_strlcpy(bss->bridge, pos, sizeof(bss->bridge));
index fa59797c2ef79777792714e69c2812fb5d4833e0..f0e838bf2f3accc878f7aee1db8deecef3add790 100644 (file)
@@ -8,7 +8,7 @@ full device, e.g. in order to deal with hardware/driver limitations
 
 --- a/hostapd/config_file.c
 +++ b/hostapd/config_file.c
-@@ -3065,6 +3065,14 @@ static int hostapd_config_fill(struct ho
+@@ -3090,6 +3090,14 @@ static int hostapd_config_fill(struct ho
                                   line, bss->max_num_sta, MAX_STA_COUNT);
                        return 1;
                }
@@ -25,7 +25,7 @@ full device, e.g. in order to deal with hardware/driver limitations
        } else if (os_strcmp(buf, "extended_key_id") == 0) {
 --- a/src/ap/ap_config.h
 +++ b/src/ap/ap_config.h
-@@ -1072,6 +1072,8 @@ struct hostapd_config {
+@@ -1086,6 +1086,8 @@ struct hostapd_config {
        unsigned int track_sta_max_num;
        unsigned int track_sta_max_age;
  
@@ -36,7 +36,7 @@ full device, e.g. in order to deal with hardware/driver limitations
                          * ' ' (ascii 32): all environments
 --- a/src/ap/beacon.c
 +++ b/src/ap/beacon.c
-@@ -1573,7 +1573,7 @@ void handle_probe_req(struct hostapd_dat
+@@ -1634,7 +1634,7 @@ void handle_probe_req(struct hostapd_dat
        if (hapd->conf->no_probe_resp_if_max_sta &&
            is_multicast_ether_addr(mgmt->da) &&
            is_multicast_ether_addr(mgmt->bssid) &&
@@ -79,7 +79,7 @@ full device, e.g. in order to deal with hardware/driver limitations
  {
 --- a/src/ap/hostapd.h
 +++ b/src/ap/hostapd.h
-@@ -790,6 +790,7 @@ void hostapd_cleanup_cs_params(struct ho
+@@ -825,6 +825,7 @@ void hostapd_cleanup_cs_params(struct ho
  void hostapd_periodic_iface(struct hostapd_iface *iface);
  int hostapd_owe_trans_get_info(struct hostapd_data *hapd);
  void hostapd_ocv_check_csa_sa_query(void *eloop_ctx, void *timeout_ctx);
index 9c17b809d16a05ab727a473914527f2553f6eb20..648641e43a76399546f21b1df27139856bc86b49 100644 (file)
@@ -8,7 +8,7 @@ a VLAN interface on top of the bridge, instead of using the bridge directly
 
 --- a/hostapd/config_file.c
 +++ b/hostapd/config_file.c
-@@ -3224,6 +3224,8 @@ static int hostapd_config_fill(struct ho
+@@ -3287,6 +3287,8 @@ static int hostapd_config_fill(struct ho
                wpa_printf(MSG_INFO,
                           "Line %d: Obsolete peerkey parameter ignored", line);
  #ifdef CONFIG_IEEE80211R_AP
@@ -29,7 +29,7 @@ a VLAN interface on top of the bridge, instead of using the bridge directly
        int bridge_hairpin; /* hairpin_mode on bridge members */
 --- a/src/ap/wpa_auth_glue.c
 +++ b/src/ap/wpa_auth_glue.c
-@@ -1763,8 +1763,12 @@ int hostapd_setup_wpa(struct hostapd_dat
+@@ -1815,8 +1815,12 @@ int hostapd_setup_wpa(struct hostapd_dat
            wpa_key_mgmt_ft(hapd->conf->wpa_key_mgmt)) {
                const char *ft_iface;
  
index c7baeedbfa07597a6d84a67be40100a921c75ae1..3c59865f8472c79a1d1bbe46816da5edd4caee88 100644 (file)
@@ -8,7 +8,7 @@ untagged DHCP packets
 
 --- a/hostapd/config_file.c
 +++ b/hostapd/config_file.c
-@@ -2451,6 +2451,8 @@ static int hostapd_config_fill(struct ho
+@@ -2476,6 +2476,8 @@ static int hostapd_config_fill(struct ho
                        os_strlcpy(bss->wds_bridge, pos, sizeof(bss->wds_bridge));
        } else if (os_strcmp(buf, "bridge_hairpin") == 0) {
                bss->bridge_hairpin = atoi(pos);
@@ -29,7 +29,7 @@ untagged DHCP packets
        int bridge_hairpin; /* hairpin_mode on bridge members */
 --- a/src/ap/ap_drv_ops.h
 +++ b/src/ap/ap_drv_ops.h
-@@ -371,12 +371,12 @@ static inline int hostapd_drv_br_port_se
+@@ -376,12 +376,12 @@ static inline int hostapd_drv_br_port_se
  
  static inline int hostapd_drv_br_set_net_param(struct hostapd_data *hapd,
                                               enum drv_br_net_param param,
@@ -112,7 +112,7 @@ untagged DHCP packets
        hapd->x_snoop_initialized = false;
 --- a/src/drivers/driver.h
 +++ b/src/drivers/driver.h
-@@ -4315,7 +4315,7 @@ struct wpa_driver_ops {
+@@ -4350,7 +4350,7 @@ struct wpa_driver_ops {
         * Returns: 0 on success, negative (<0) on failure
         */
        int (*br_set_net_param)(void *priv, enum drv_br_net_param param,
@@ -123,7 +123,7 @@ untagged DHCP packets
         * get_wowlan - Get wake-on-wireless status
 --- a/src/drivers/driver_nl80211.c
 +++ b/src/drivers/driver_nl80211.c
-@@ -12503,7 +12503,7 @@ static const char * drv_br_net_param_str
+@@ -12662,7 +12662,7 @@ static const char * drv_br_net_param_str
  
  
  static int wpa_driver_br_set_net_param(void *priv, enum drv_br_net_param param,
@@ -132,7 +132,7 @@ untagged DHCP packets
  {
        struct i802_bss *bss = priv;
        char path[128];
-@@ -12529,8 +12529,11 @@ static int wpa_driver_br_set_net_param(v
+@@ -12688,8 +12688,11 @@ static int wpa_driver_br_set_net_param(v
                        return -EINVAL;
        }
  
index 40ea6566abef1cfc94871e2901a4422214ea6d76..5f13b861d31914b7d0190be33dbb88115da5399b 100644 (file)
@@ -7,7 +7,7 @@ Some servers use the NAS-IP-Address attribute as a destination address
 
 --- a/hostapd/config_file.c
 +++ b/hostapd/config_file.c
-@@ -2840,6 +2840,8 @@ static int hostapd_config_fill(struct ho
+@@ -2865,6 +2865,8 @@ static int hostapd_config_fill(struct ho
        } else if (os_strcmp(buf, "iapp_interface") == 0) {
                wpa_printf(MSG_INFO, "DEPRECATED: iapp_interface not used");
  #endif /* CONFIG_IAPP */
index c200cad3c6d1019847e4285315c59c5270312c5c..26aeacac76abf48b993ab697eb103dae4b34633c 100644 (file)
@@ -7,7 +7,7 @@ Use the NAS identifier to find the right receiver context on incoming messages
 
 --- a/src/ap/hostapd.c
 +++ b/src/ap/hostapd.c
-@@ -1366,6 +1366,7 @@ static int hostapd_bss_radius_init(struc
+@@ -1379,6 +1379,7 @@ static int hostapd_bss_radius_init(struc
  
                os_memset(&das_conf, 0, sizeof(das_conf));
                das_conf.port = conf->radius_das_port;
index 31e0de520b40fbffeaf436dcc3a8c110d5aabff0..7beb87118f8385f97c309f07fab1e513bc079f3c 100644 (file)
@@ -28,7 +28,7 @@ Signed-off-by: David Bauer <mail@david-bauer.net>
 
 --- a/src/ap/beacon.c
 +++ b/src/ap/beacon.c
-@@ -1416,7 +1416,7 @@ void handle_probe_req(struct hostapd_dat
+@@ -1477,7 +1477,7 @@ void handle_probe_req(struct hostapd_dat
         * is less likely to see them (Probe Request frame sent on a
         * neighboring, but partially overlapping, channel).
         */
index 7df497811d66760015d7e931e8030464119970ef..c110a85e2e73f1225e690a120ecbebf4ee7a4ade 100644 (file)
@@ -29,7 +29,7 @@ handle reload.
  
  #ifndef CONFIG_NO_HOSTAPD_LOGGER
  static void hostapd_logger_cb(void *ctx, const u8 *addr, unsigned int module,
-@@ -788,6 +789,11 @@ int main(int argc, char *argv[])
+@@ -793,6 +794,11 @@ int main(int argc, char *argv[])
        if (os_program_init())
                return -1;
  
index 9ecb9060d5ee79b60fe95e62239a7ad4cd765b97..22bd7ad26348886fe318e83c187449cfd21022b7 100644 (file)
@@ -53,7 +53,7 @@ Hotfix-by: Sebastian Gottschall https://github.com/mirror/dd-wrt/commit/0c3001a6
  
 --- a/hostapd/config_file.c
 +++ b/hostapd/config_file.c
-@@ -5125,6 +5125,15 @@ static int hostapd_config_fill(struct ho
+@@ -5200,6 +5200,15 @@ static int hostapd_config_fill(struct ho
                bss->mld_indicate_disabled = atoi(pos);
  #endif /* CONFIG_TESTING_OPTIONS */
  #endif /* CONFIG_IEEE80211BE */
@@ -71,7 +71,7 @@ Hotfix-by: Sebastian Gottschall https://github.com/mirror/dd-wrt/commit/0c3001a6
                           "Line %d: unknown configuration item '%s'",
 --- a/src/ap/ap_config.h
 +++ b/src/ap/ap_config.h
-@@ -985,6 +985,35 @@ struct hostapd_bss_config {
+@@ -999,6 +999,35 @@ struct hostapd_bss_config {
        bool mld_indicate_disabled;
  #endif /* CONFIG_TESTING_OPTIONS */
  #endif /* CONFIG_IEEE80211BE */
@@ -346,7 +346,7 @@ Hotfix-by: Sebastian Gottschall https://github.com/mirror/dd-wrt/commit/0c3001a6
 +              const struct ieee802_11_elems *elems );
 --- a/src/ap/ieee802_11.c
 +++ b/src/ap/ieee802_11.c
-@@ -59,6 +59,9 @@
+@@ -60,6 +60,9 @@
  #include "nan_usd_ap.h"
  #include "pasn/pasn_common.h"
  
@@ -356,7 +356,7 @@ Hotfix-by: Sebastian Gottschall https://github.com/mirror/dd-wrt/commit/0c3001a6
  
  #ifdef CONFIG_FILS
  static struct wpabuf *
-@@ -3562,8 +3565,8 @@ static u16 check_multi_ap(struct hostapd
+@@ -3588,8 +3591,8 @@ static u16 check_multi_ap(struct hostapd
  }
  
  
@@ -367,7 +367,7 @@ Hotfix-by: Sebastian Gottschall https://github.com/mirror/dd-wrt/commit/0c3001a6
  {
        /* Supported rates not used in IEEE 802.11ad/DMG */
        if (hapd->iface->current_mode &&
-@@ -3950,7 +3953,7 @@ static int __check_assoc_ies(struct host
+@@ -3976,7 +3979,7 @@ static int __check_assoc_ies(struct host
                               elems->ext_capab_len);
        if (resp != WLAN_STATUS_SUCCESS)
                return resp;
@@ -376,7 +376,7 @@ Hotfix-by: Sebastian Gottschall https://github.com/mirror/dd-wrt/commit/0c3001a6
        if (resp != WLAN_STATUS_SUCCESS)
                return resp;
  
-@@ -6002,6 +6005,11 @@ static void handle_beacon(struct hostapd
+@@ -6031,6 +6034,11 @@ static void handle_beacon(struct hostapd
                                      0);
  
        ap_list_process_beacon(hapd->iface, mgmt, &elems, fi);
@@ -401,7 +401,7 @@ Hotfix-by: Sebastian Gottschall https://github.com/mirror/dd-wrt/commit/0c3001a6
  u16 copy_sta_vendor_vht(struct hostapd_data *hapd, struct sta_info *sta,
 --- a/src/drivers/driver.h
 +++ b/src/drivers/driver.h
-@@ -4013,7 +4013,7 @@ struct wpa_driver_ops {
+@@ -4048,7 +4048,7 @@ struct wpa_driver_ops {
         * Returns: 0 on success, -1 on failure
         */
        int (*set_wds_sta)(void *priv, const u8 *addr, int aid, int val,
@@ -412,7 +412,7 @@ Hotfix-by: Sebastian Gottschall https://github.com/mirror/dd-wrt/commit/0c3001a6
         * send_action - Transmit an Action frame
 --- a/src/drivers/driver_nl80211.c
 +++ b/src/drivers/driver_nl80211.c
-@@ -8434,24 +8434,14 @@ static int have_ifidx(struct wpa_driver_
+@@ -8559,25 +8559,15 @@ static int have_ifidx(struct wpa_driver_
  
  
  static int i802_set_wds_sta(void *priv, const u8 *addr, int aid, int val,
@@ -424,6 +424,7 @@ Hotfix-by: Sebastian Gottschall https://github.com/mirror/dd-wrt/commit/0c3001a6
 -      char name[IFNAMSIZ + 1];
 +      const char *name = ifname_wds; // Kept to reduce changes to the minimum
        union wpa_event_data event;
+       bool add_br = false;
        int ret;
  
 -      ret = os_snprintf(name, sizeof(name), "%s.sta%d", bss->ifname, aid);
index 389b5abbdc27c540c609fda7e6412d91a2e3054b..b0e2c57b1387c385c9fc5e21d7c8774c8bbf00f0 100644 (file)
@@ -1,4 +1,4 @@
-From 5d139e62c018f2ff1ae8b0fc76cb9c79813c61ce Mon Sep 17 00:00:00 2001
+From 9a265f70b5e4e048c568564aed5f9ac4a4fd76b0 Mon Sep 17 00:00:00 2001
 From: Gioacchino Mazzurco <gio@polymathes.cc>
 Date: Tue, 7 May 2024 10:37:54 +0200
 Subject: [PATCH 2/3] APuP add ubus notification when a peer comes up
index 2f14b21a0cb6bebe9fd7edd2b08e8af82532e3f1..d5c76994b4f6cceeaf71029a591d0e09d7924207 100644 (file)
@@ -1,4 +1,4 @@
-From 484489e41a1ae4b43d9863d057f8afb29f1c41d5 Mon Sep 17 00:00:00 2001
+From aaeb60b39a72774c651187208ec47efd0daeb75b Mon Sep 17 00:00:00 2001
 From: Gioacchino Mazzurco <gio@polymathes.cc>
 Date: Tue, 7 May 2024 11:54:23 +0200
 Subject: [PATCH 3/3] APuP add ucode hook for when a peer comes up
index 22767d67ee7564ba023ad4be22ee88d46f8e68c8..5b8938cbd32d7dd30ddb1ad835b4a4536ee0bf3f 100644 (file)
@@ -8,8 +8,6 @@
 #ifndef __HOSTAPD_UBUS_H
 #define __HOSTAPD_UBUS_H
 
-#include "sta_info.h"
-
 enum hostapd_ubus_event_type {
        HOSTAPD_UBUS_PROBE_REQ,
        HOSTAPD_UBUS_AUTH_REQ,
index 68fb450884e2f396adbe5398224ca62d876ad68b..c54f071ee0f5ea39a4684cdad0312f10ad839d80 100644 (file)
@@ -3,7 +3,7 @@
 #include "utils/includes.h"
 #include "utils/common.h"
 #include "utils/ucode.h"
-#include "hostapd.h"
+#include "sta_info.h"
 #include "beacon.h"
 #include "hw_features.h"
 #include "ap_drv_ops.h"