]> git.ipfire.org Git - thirdparty/openwrt.git/commitdiff
hostapd: update to 2.12 24599/head
authorIvan Pavlov <AuthorReflex@gmail.com>
Fri, 7 Aug 2026 07:04:50 +0000 (10:04 +0300)
committerHauke Mehrtens <hauke@hauke-m.de>
Wed, 12 Aug 2026 23:50:01 +0000 (01:50 +0200)
Update on 2.12 release tag

Manually edit patches:
- 601-ucode_support.patch

Remove upstreamed patches:
- 060-nl80211-fix-reporting-spurious-frame-events.patch
  https://git.w1.fi/cgit/hostap/commit/?id=d6cda78252b4daefaab3f045fb5ae11fb7189939

All other patches refreshed automatically

Signed-off-by: Ivan Pavlov <AuthorReflex@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/24599
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
40 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/052-AP-add-missing-null-pointer-check-in-hostapd_free_ha.patch
package/network/services/hostapd/patches/060-nl80211-fix-reporting-spurious-frame-events.patch [deleted file]
package/network/services/hostapd/patches/110-mbedtls-TLS-crypto-option-initial-port.patch
package/network/services/hostapd/patches/120-mbedtls-fips186_2_prf.patch
package/network/services/hostapd/patches/140-tests-Makefile-make-run-tests-with-CONFIG_TLS.patch
package/network/services/hostapd/patches/161-wpa_supplicant-avoid-stopping-DPP-chirp-when-offchan.patch
package/network/services/hostapd/patches/180-fix_owe_ssid_update.patch
package/network/services/hostapd/patches/191-hostapd-add-support-for-specifying-the-link-id-in-th.patch
package/network/services/hostapd/patches/200-multicall.patch
package/network/services/hostapd/patches/201-lto-jobserver-support.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/370-preserve_radio_mask.patch
package/network/services/hostapd/patches/410-limit_debug_messages.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/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/780-Implement-APuP-Access-Point-Micro-Peering.patch
package/network/services/hostapd/patches/803-hostapd-fix-80211be-build.patch

index 03bf891229f664bbc749ddb58b0c8fe779938bd6..e2cdc1096ff3fed1c8cb2e40d6a47b4766e21478 100644 (file)
@@ -9,9 +9,9 @@ PKG_RELEASE:=1
 
 PKG_SOURCE_URL:=https://w1.fi/hostap.git
 PKG_SOURCE_PROTO:=git
-PKG_SOURCE_DATE:=2026-07-09
-PKG_SOURCE_VERSION:=f08f2749aa696c4e47c5c0f591dda99951bf9fac
-PKG_MIRROR_HASH:=c1a978092c8a6e43a9e1bd47e1f334637b9c4969ca741c30ff45c24539132ca4
+PKG_SOURCE_DATE:=2026-08-07
+PKG_SOURCE_VERSION:=831364bf02710ad09c2f27d3efa92abeeb5634c0
+PKG_MIRROR_HASH:=d1b9ca0e6aaaba928fc5d5b02c0084083e745a38ae1214d0e2dc5d1ea6d50393
 
 PKG_MAINTAINER:=Felix Fietkau <nbd@nbd.name>
 PKG_LICENSE:=BSD-3-Clause
index 76c2581c8634a57540ebf17bc979688f7e91b575..3abd5f9ea384af8f9b2a68459bc4eeb2c2a54455 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
-@@ -3062,7 +3062,7 @@ static int drv_supports_vht(struct wpa_s
+@@ -3086,7 +3086,7 @@ static int drv_supports_vht(struct wpa_s
  }
  
  
@@ -23,7 +23,7 @@ Signed-off-by: Peter Oh <peter.oh@bowerswilkins.com>
  {
        int i;
  
-@@ -3071,7 +3071,10 @@ static bool ibss_mesh_is_80mhz_avail(int
+@@ -3095,7 +3095,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;
        }
  
-@@ -3198,7 +3201,7 @@ static void ibss_mesh_select_40mhz(struc
+@@ -3222,7 +3225,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;
-@@ -3229,8 +3232,11 @@ static void ibss_mesh_select_40mhz(struc
+@@ -3253,8 +3256,11 @@ static void ibss_mesh_select_40mhz(struc
                return;
  
        /* Check primary channel flags */
@@ -58,7 +58,7 @@ Signed-off-by: Peter Oh <peter.oh@bowerswilkins.com>
  
  #ifdef CONFIG_HT_OVERRIDES
        if (ssid->disable_ht40)
-@@ -3265,8 +3271,11 @@ static void ibss_mesh_select_40mhz(struc
+@@ -3289,8 +3295,11 @@ static void ibss_mesh_select_40mhz(struc
                return;
  
        /* Check secondary channel flags */
@@ -72,7 +72,7 @@ Signed-off-by: Peter Oh <peter.oh@bowerswilkins.com>
  
        if (freq->ht_enabled) {
                if (ht40 == -1) {
-@@ -3344,7 +3353,7 @@ static bool ibss_mesh_select_80_160mhz(s
+@@ -3368,7 +3377,7 @@ static bool ibss_mesh_select_80_160mhz(s
                                       const struct wpa_ssid *ssid,
                                       struct hostapd_hw_modes *mode,
                                       struct hostapd_freq_params *freq,
@@ -81,7 +81,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,
-@@ -3397,7 +3406,7 @@ static bool ibss_mesh_select_80_160mhz(s
+@@ -3421,7 +3430,7 @@ static bool ibss_mesh_select_80_160mhz(s
                goto skip_80mhz;
  
        /* Use 40 MHz if channel not usable */
@@ -90,7 +90,7 @@ Signed-off-by: Peter Oh <peter.oh@bowerswilkins.com>
                goto skip_80mhz;
  
        chwidth = CONF_OPER_CHWIDTH_80MHZ;
-@@ -3439,7 +3448,7 @@ static bool ibss_mesh_select_80_160mhz(s
+@@ -3463,7 +3472,7 @@ static bool ibss_mesh_select_80_160mhz(s
             HE_PHYCAP_CHANNEL_WIDTH_SET_160MHZ_IN_5G) &&
            (ssid->max_oper_chwidth == CONF_OPER_CHWIDTH_160MHZ ||
             ssid->max_oper_chwidth == CONF_OPER_CHWIDTH_320MHZ) &&
@@ -99,7 +99,7 @@ Signed-off-by: Peter Oh <peter.oh@bowerswilkins.com>
                for (j = 0; j < ARRAY_SIZE(bw160); j++) {
                        u8 start_chan;
  
-@@ -3462,11 +3471,11 @@ static bool ibss_mesh_select_80_160mhz(s
+@@ -3486,11 +3495,11 @@ static bool ibss_mesh_select_80_160mhz(s
             EHT_PHYCAP_320MHZ_IN_6GHZ_SUPPORT_MASK) && is_6ghz &&
            ssid->max_oper_chwidth == CONF_OPER_CHWIDTH_320MHZ &&
            ibss_mesh_is_80mhz_avail(channel + 16 -
@@ -114,7 +114,7 @@ Signed-off-by: Peter Oh <peter.oh@bowerswilkins.com>
                for (j = 0; j < ARRAY_SIZE(bw320); j += 2) {
                        if (freq->freq >= bw320[j] &&
                            freq->freq <= bw320[j + 1]) {
-@@ -3495,10 +3504,12 @@ static bool ibss_mesh_select_80_160mhz(s
+@@ -3519,10 +3528,12 @@ static bool ibss_mesh_select_80_160mhz(s
                                if (!chan)
                                        continue;
  
@@ -131,7 +131,7 @@ Signed-off-by: Peter Oh <peter.oh@bowerswilkins.com>
  
                                /* Found a suitable second segment for 80+80 */
                                chwidth = CONF_OPER_CHWIDTH_80P80MHZ;
-@@ -3553,6 +3564,7 @@ void ibss_mesh_setup_freq(struct wpa_sup
+@@ -3577,6 +3588,7 @@ void ibss_mesh_setup_freq(struct wpa_sup
        int obss_scan = 1;
        u8 channel;
        bool is_6ghz, is_24ghz;
@@ -139,7 +139,7 @@ Signed-off-by: Peter Oh <peter.oh@bowerswilkins.com>
  
        freq->freq = ssid->frequency;
  
-@@ -3596,9 +3608,9 @@ void ibss_mesh_setup_freq(struct wpa_sup
+@@ -3620,9 +3632,9 @@ void ibss_mesh_setup_freq(struct wpa_sup
        /* Setup higher BW only for 5 and 6 GHz */
        if (mode->mode == HOSTAPD_MODE_IEEE80211A) {
                ibss_mesh_select_40mhz(wpa_s, ssid, mode, freq, obss_scan,
index 37f13f0512dd93305d50c2bffdcf64db7bab3988..cc70c6aeb173980ec2ae7cde1c4d8ae28e5727e5 100644 (file)
@@ -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
-@@ -12349,6 +12349,10 @@ static int nl80211_switch_channel(void *
+@@ -12389,6 +12389,10 @@ static int nl80211_switch_channel(void *
        if (ret)
                goto error;
  
index 9de53dd10c36b3f819cfc4e3025c5a6292ab51d4..6b2c043788722afd6783a2e7661afec8a405f605 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
-@@ -6511,6 +6511,13 @@ static int add_associated_sta(struct hos
+@@ -6525,6 +6525,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)",
-@@ -6524,7 +6531,8 @@ static int add_associated_sta(struct hos
+@@ -6538,7 +6545,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 9b6f96191a4a24e30d6d02b6bd5625a43de14860..93d76722aae4dd570f1bb3c7a2cbf1811147d09a 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
-@@ -4126,6 +4126,8 @@ int hostapd_remove_iface(struct hapd_int
+@@ -4173,6 +4173,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);
-@@ -4133,10 +4135,16 @@ void hostapd_new_assoc_sta(struct hostap
+@@ -4180,10 +4182,16 @@ void hostapd_new_assoc_sta(struct hostap
        }
  
  #ifdef CONFIG_IEEE80211BE
@@ -51,7 +51,7 @@ Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be>
        ap_sta_clear_assoc_timeout(hapd, sta);
 --- a/src/ap/sta_info.c
 +++ b/src/ap/sta_info.c
-@@ -1742,9 +1742,6 @@ bool ap_sta_set_authorized_flag(struct h
+@@ -1757,9 +1757,6 @@ bool ap_sta_set_authorized_flag(struct h
                                mld_assoc_link_id = -2;
                }
  #endif /* CONFIG_IEEE80211BE */
index 7dd22edcd385f78f136d678494d406efef9ccaa6..e5d789eaf7fd8356c4e0a99620bf6933701a5aa5 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
-@@ -2595,6 +2595,9 @@ struct wpa_driver_capa {
+@@ -2601,6 +2601,9 @@ struct wpa_driver_capa {
        /** Maximum number of iterations in a single scan plan */
        u32 max_sched_scan_plan_iterations;
  
index 60f168f2da56143f823923bab8042eda05851a0d..22dc46f946bad758a7b361c0f63e028be8f9e1c6 100644 (file)
@@ -9,7 +9,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
 
 --- a/src/ap/hostapd.c
 +++ b/src/ap/hostapd.c
-@@ -498,7 +498,7 @@ void hostapd_free_hapd_data(struct hosta
+@@ -535,7 +535,7 @@ void hostapd_free_hapd_data(struct hosta
                struct hapd_interfaces *ifaces = hapd->iface->interfaces;
                size_t i;
  
diff --git a/package/network/services/hostapd/patches/060-nl80211-fix-reporting-spurious-frame-events.patch b/package/network/services/hostapd/patches/060-nl80211-fix-reporting-spurious-frame-events.patch
deleted file mode 100644 (file)
index 2640150..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-From: Felix Fietkau <nbd@nbd.name>
-Date: Tue, 26 Aug 2025 22:04:57 +0200
-Subject: [PATCH] nl80211: fix reporting spurious frame events
-
-When the nl80211 driver is shared across multiple interfaces (on the same
-wiphy), nl80211_spurious_frame can send the event to the wrong interface by
-using drv->ctx. Fix this by using bss->ctx instead.
-
-Signed-off-by: Felix Fietkau <nbd@nbd.name>
----
-
---- a/src/drivers/driver_nl80211_event.c
-+++ b/src/drivers/driver_nl80211_event.c
-@@ -2874,7 +2874,7 @@ static void nl80211_spurious_frame(struc
-       event.rx_from_unknown.link_id = tb[NL80211_ATTR_MLO_LINK_ID] ?
-               nla_get_u8(tb[NL80211_ATTR_MLO_LINK_ID]) : -1;
--      wpa_supplicant_event(drv->ctx, EVENT_RX_FROM_UNKNOWN, &event);
-+      wpa_supplicant_event(bss->ctx, EVENT_RX_FROM_UNKNOWN, &event);
- }
index 7e7664e1c2153763de979c413caaf0ec4ab9b73b..63e29e503506e156ccb624f5797568a73e49fa47 100644 (file)
@@ -21,7 +21,7 @@ Signed-off-by: Glenn Strauss <gstrauss@gluelogic.com>
 
 --- a/hostapd/Makefile
 +++ b/hostapd/Makefile
-@@ -774,6 +774,40 @@ endif
+@@ -782,6 +782,40 @@ endif
  CFLAGS += -DTLS_DEFAULT_CIPHERS=\"$(CONFIG_TLS_DEFAULT_CIPHERS)\"
  endif
  
@@ -62,7 +62,7 @@ Signed-off-by: Glenn Strauss <gstrauss@gluelogic.com>
  ifeq ($(CONFIG_TLS), gnutls)
  ifndef CONFIG_CRYPTO
  # default to libgcrypt
-@@ -953,9 +987,11 @@ endif
+@@ -961,9 +995,11 @@ endif
  
  ifneq ($(CONFIG_TLS), openssl)
  ifneq ($(CONFIG_TLS), wolfssl)
@@ -74,7 +74,7 @@ Signed-off-by: Glenn Strauss <gstrauss@gluelogic.com>
  ifdef NEED_AES_EAX
  AESOBJS += ../src/crypto/aes-eax.o
  NEED_AES_CTR=y
-@@ -965,38 +1001,48 @@ AESOBJS += ../src/crypto/aes-siv.o
+@@ -973,38 +1009,48 @@ AESOBJS += ../src/crypto/aes-siv.o
  NEED_AES_CTR=y
  endif
  ifdef NEED_AES_CTR
@@ -123,7 +123,7 @@ Signed-off-by: Glenn Strauss <gstrauss@gluelogic.com>
  ifdef NEED_AES_DEC
  ifdef CONFIG_INTERNAL_AES
  AESOBJS += ../src/crypto/aes-internal-dec.o
-@@ -1011,12 +1057,16 @@ ifneq ($(CONFIG_TLS), openssl)
+@@ -1019,12 +1065,16 @@ ifneq ($(CONFIG_TLS), openssl)
  ifneq ($(CONFIG_TLS), linux)
  ifneq ($(CONFIG_TLS), gnutls)
  ifneq ($(CONFIG_TLS), wolfssl)
@@ -140,7 +140,7 @@ Signed-off-by: Glenn Strauss <gstrauss@gluelogic.com>
  ifdef CONFIG_INTERNAL_SHA1
  SHA1OBJS += ../src/crypto/sha1-internal.o
  ifdef NEED_FIPS186_2_PRF
-@@ -1025,16 +1075,22 @@ endif
+@@ -1033,16 +1083,22 @@ endif
  endif
  ifneq ($(CONFIG_TLS), openssl)
  ifneq ($(CONFIG_TLS), wolfssl)
@@ -163,7 +163,7 @@ Signed-off-by: Glenn Strauss <gstrauss@gluelogic.com>
  
  ifdef NEED_SHA1
  OBJS += $(SHA1OBJS)
-@@ -1044,11 +1100,13 @@ ifneq ($(CONFIG_TLS), openssl)
+@@ -1052,11 +1108,13 @@ ifneq ($(CONFIG_TLS), openssl)
  ifneq ($(CONFIG_TLS), linux)
  ifneq ($(CONFIG_TLS), gnutls)
  ifneq ($(CONFIG_TLS), wolfssl)
@@ -177,7 +177,7 @@ Signed-off-by: Glenn Strauss <gstrauss@gluelogic.com>
  
  ifdef NEED_MD5
  ifdef CONFIG_INTERNAL_MD5
-@@ -1101,56 +1159,81 @@ ifneq ($(CONFIG_TLS), openssl)
+@@ -1109,56 +1167,81 @@ ifneq ($(CONFIG_TLS), openssl)
  ifneq ($(CONFIG_TLS), linux)
  ifneq ($(CONFIG_TLS), gnutls)
  ifneq ($(CONFIG_TLS), wolfssl)
@@ -259,7 +259,7 @@ Signed-off-by: Glenn Strauss <gstrauss@gluelogic.com>
  
  ifdef CONFIG_INTERNAL_SHA384
  CFLAGS += -DCONFIG_INTERNAL_SHA384
-@@ -1195,11 +1278,13 @@ HOBJS += $(SHA1OBJS)
+@@ -1203,11 +1286,13 @@ HOBJS += $(SHA1OBJS)
  ifneq ($(CONFIG_TLS), openssl)
  ifneq ($(CONFIG_TLS), linux)
  ifneq ($(CONFIG_TLS), wolfssl)
@@ -273,7 +273,7 @@ Signed-off-by: Glenn Strauss <gstrauss@gluelogic.com>
  
  ifdef CONFIG_RADIUS_SERVER
  CFLAGS += -DRADIUS_SERVER
-@@ -1379,7 +1464,9 @@ NOBJS += ../src/utils/trace.o
+@@ -1387,7 +1472,9 @@ NOBJS += ../src/utils/trace.o
  endif
  
  HOBJS += hlr_auc_gw.o ../src/utils/common.o ../src/utils/wpa_debug.o ../src/utils/os_$(CONFIG_OS).o ../src/utils/wpabuf.o ../src/crypto/milenage.o
@@ -283,7 +283,7 @@ Signed-off-by: Glenn Strauss <gstrauss@gluelogic.com>
  ifdef CONFIG_INTERNAL_AES
  HOBJS += ../src/crypto/aes-internal.o
  HOBJS += ../src/crypto/aes-internal-enc.o
-@@ -1402,6 +1489,7 @@ SOBJS += ../src/common/sae.o
+@@ -1410,6 +1497,7 @@ SOBJS += ../src/common/sae.o
  SOBJS += ../src/common/sae_pk.o
  SOBJS += ../src/common/dragonfly.o
  SOBJS += $(AESOBJS)
@@ -291,7 +291,7 @@ Signed-off-by: Glenn Strauss <gstrauss@gluelogic.com>
  ifneq ($(CONFIG_TLS), openssl)
  ifneq ($(CONFIG_TLS), linux)
  ifneq ($(CONFIG_TLS), gnutls)
-@@ -1415,17 +1503,22 @@ endif
+@@ -1423,17 +1511,22 @@ endif
  SOBJS += ../src/crypto/sha256-prf.o
  SOBJS += ../src/crypto/sha384-prf.o
  SOBJS += ../src/crypto/sha512-prf.o
index db67c442e338cfb02c18bb5cfaa69f6f6cc5e417..759a71e97f4762b4af1681b7dd27d316217ed031 100644 (file)
@@ -12,7 +12,7 @@ Signed-off-by: Glenn Strauss <gstrauss@gluelogic.com>
 
 --- a/hostapd/Makefile
 +++ b/hostapd/Makefile
-@@ -788,10 +788,6 @@ endif
+@@ -796,10 +796,6 @@ endif
  OBJS += ../src/crypto/crypto_$(CONFIG_CRYPTO).o
  HOBJS += ../src/crypto/crypto_$(CONFIG_CRYPTO).o
  SOBJS += ../src/crypto/crypto_$(CONFIG_CRYPTO).o
index 1cdba474f421502512c95298ee077e4638b5229c..323e173f412d7121b4c31b455e9a4f6d32c25acb 100644 (file)
@@ -61,7 +61,7 @@ Signed-off-by: Glenn Strauss <gstrauss@gluelogic.com>
 
 --- a/hostapd/Makefile
 +++ b/hostapd/Makefile
-@@ -724,6 +724,7 @@ CFLAGS += -DCONFIG_TLSV12
+@@ -732,6 +732,7 @@ CFLAGS += -DCONFIG_TLSV12
  endif
  
  ifeq ($(CONFIG_TLS), wolfssl)
@@ -69,7 +69,7 @@ Signed-off-by: Glenn Strauss <gstrauss@gluelogic.com>
  CFLAGS += -DCRYPTO_RSA_OAEP_SHA256
  CONFIG_CRYPTO=wolfssl
  ifdef TLS_FUNCS
-@@ -745,6 +746,7 @@ endif
+@@ -753,6 +754,7 @@ endif
  endif
  
  ifeq ($(CONFIG_TLS), openssl)
@@ -77,7 +77,7 @@ Signed-off-by: Glenn Strauss <gstrauss@gluelogic.com>
  CFLAGS += -DCRYPTO_RSA_OAEP_SHA256
  CONFIG_CRYPTO=openssl
  ifdef TLS_FUNCS
-@@ -775,6 +777,7 @@ CFLAGS += -DTLS_DEFAULT_CIPHERS=\"$(CONF
+@@ -783,6 +785,7 @@ CFLAGS += -DTLS_DEFAULT_CIPHERS=\"$(CONF
  endif
  
  ifeq ($(CONFIG_TLS), mbedtls)
@@ -85,7 +85,7 @@ Signed-off-by: Glenn Strauss <gstrauss@gluelogic.com>
  ifndef CONFIG_CRYPTO
  CONFIG_CRYPTO=mbedtls
  endif
-@@ -805,6 +808,7 @@ endif
+@@ -813,6 +816,7 @@ endif
  endif
  
  ifeq ($(CONFIG_TLS), gnutls)
@@ -93,7 +93,7 @@ Signed-off-by: Glenn Strauss <gstrauss@gluelogic.com>
  ifndef CONFIG_CRYPTO
  # default to libgcrypt
  CONFIG_CRYPTO=gnutls
-@@ -835,6 +839,7 @@ endif
+@@ -843,6 +847,7 @@ endif
  endif
  
  ifeq ($(CONFIG_TLS), internal)
@@ -101,7 +101,7 @@ Signed-off-by: Glenn Strauss <gstrauss@gluelogic.com>
  ifndef CONFIG_CRYPTO
  CONFIG_CRYPTO=internal
  endif
-@@ -913,6 +918,7 @@ endif
+@@ -921,6 +926,7 @@ endif
  endif
  
  ifeq ($(CONFIG_TLS), linux)
index ca8c3c1c709c7c63153aaed5868a42266b03ebba..b078d62049a1751e87aaa387e341d18eec8b29f2 100644 (file)
@@ -12,7 +12,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
 
 --- a/wpa_supplicant/dpp_supplicant.c
 +++ b/wpa_supplicant/dpp_supplicant.c
-@@ -5135,7 +5135,10 @@ static void wpas_dpp_chirp_start(struct
+@@ -5136,7 +5136,10 @@ static void wpas_dpp_chirp_start(struct
                    wpa_s->own_addr, broadcast,
                    wpabuf_head(msg), wpabuf_len(msg),
                    2000, wpas_dpp_chirp_tx_status, 0) < 0)
index 333b1587d9c86d57ed57f9b281c1f3100f85902b..e3178439fbcef05c2e1d2a79ec9df490b013fd76 100644 (file)
@@ -1,6 +1,6 @@
 --- a/src/ap/hostapd.c
 +++ b/src/ap/hostapd.c
-@@ -2476,7 +2476,11 @@ static int hostapd_owe_iface_iter(struct
+@@ -2521,7 +2521,11 @@ static int hostapd_owe_iface_iter(struct
                if (!bss->conf->ssid.ssid_set || !bss->conf->ssid.ssid_len ||
                    is_zero_ether_addr(bss->own_addr))
                        continue;
@@ -13,7 +13,7 @@
                os_memcpy(hapd->conf->owe_transition_bssid, bss->own_addr,
                          ETH_ALEN);
                os_memcpy(hapd->conf->owe_transition_ssid,
-@@ -2493,10 +2497,6 @@ static int hostapd_owe_iface_iter(struct
+@@ -2538,10 +2542,6 @@ static int hostapd_owe_iface_iter(struct
  
  int hostapd_owe_trans_get_info(struct hostapd_data *hapd)
  {
index d43a2d02fcab236f22b8ccd45171bd6047b65a1b..a2e8ca02180d21446817e5406379d70b9dd9b5ef 100644 (file)
@@ -9,7 +9,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
 
 --- a/hostapd/config_file.c
 +++ b/hostapd/config_file.c
-@@ -4974,6 +4974,8 @@ static int hostapd_config_fill(struct ho
+@@ -5209,6 +5209,8 @@ static int hostapd_config_fill(struct ho
                conf->punct_acs_threshold = val;
        } else if (os_strcmp(buf, "mld_ap") == 0) {
                bss->mld_ap = !!atoi(pos);
@@ -32,7 +32,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
        bss->pmksa_caching_privacy = 0;
 --- a/src/ap/ap_config.h
 +++ b/src/ap/ap_config.h
-@@ -991,6 +991,8 @@ struct hostapd_bss_config {
+@@ -1002,6 +1002,8 @@ struct hostapd_bss_config {
        /* The AP's MLD MAC address within the AP MLD */
        u8 mld_addr[ETH_ALEN];
  
@@ -43,7 +43,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
         * If set indicate the AP as disabled in the RNR element included in the
 --- a/src/ap/hostapd.c
 +++ b/src/ap/hostapd.c
-@@ -3119,7 +3119,10 @@ struct hostapd_iface * hostapd_alloc_ifa
+@@ -3180,7 +3180,10 @@ struct hostapd_iface * hostapd_alloc_ifa
  #ifdef CONFIG_IEEE80211BE
  static void hostapd_bss_alloc_link_id(struct hostapd_data *hapd)
  {
index b1461a589972418cc62493f3bec0f6d1041b726f..33264857cd4567b82abdb129ee9e2e8723b0fe61 100644 (file)
@@ -25,7 +25,7 @@ This allows building both hostapd and wpa_supplicant as a single binary
  OBJS += ../src/ap/vlan_init.o
  OBJS += ../src/ap/vlan_ifconfig.o
  OBJS += ../src/ap/vlan.o
-@@ -360,10 +362,14 @@ CFLAGS += -DCONFIG_MBO
+@@ -368,10 +370,14 @@ CFLAGS += -DCONFIG_MBO
  OBJS += ../src/ap/mbo_ap.o
  endif
  
@@ -43,7 +43,7 @@ This allows building both hostapd and wpa_supplicant as a single binary
  LIBS += $(DRV_AP_LIBS)
  
  ifdef CONFIG_L2_PACKET
-@@ -1430,6 +1436,12 @@ install: $(addprefix $(DESTDIR)$(BINDIR)
+@@ -1438,6 +1444,12 @@ install: $(addprefix $(DESTDIR)$(BINDIR)
  _OBJS_VAR := OBJS
  include ../src/objs.mk
  
@@ -56,7 +56,7 @@ This allows building both hostapd and wpa_supplicant as a single binary
  hostapd: $(OBJS)
        $(Q)$(CC) $(LDFLAGS) -o hostapd $(OBJS) $(LIBS)
        @$(E) "  LD " $@
-@@ -1530,6 +1542,12 @@ include ../src/objs.mk
+@@ -1538,6 +1550,12 @@ include ../src/objs.mk
  _OBJS_VAR := SOBJS
  include ../src/objs.mk
  
@@ -94,7 +94,7 @@ 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
-@@ -2599,8 +2599,8 @@ static void hostapd_mld_iface_disable(st
+@@ -2610,8 +2610,8 @@ static void hostapd_mld_iface_disable(st
  #endif /* CONFIG_IEEE80211BE */
  
  
@@ -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;
-@@ -2970,7 +2970,7 @@ void wpa_supplicant_event(void *ctx, enu
+@@ -2981,7 +2981,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
-@@ -7804,8 +7804,8 @@ union wpa_event_data {
+@@ -7815,8 +7815,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
-@@ -7817,7 +7817,7 @@ void wpa_supplicant_event(void *ctx, enu
+@@ -7828,7 +7828,7 @@ void wpa_supplicant_event(void *ctx, enu
   * Same as wpa_supplicant_event(), but we search for the interface in
   * wpa_global.
   */
@@ -278,7 +278,7 @@ 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
-@@ -6703,8 +6703,8 @@ static int wpas_pasn_auth(struct wpa_sup
+@@ -6770,8 +6770,8 @@ static int wpas_pasn_auth(struct wpa_sup
  #endif /* CONFIG_PASN */
  
  
@@ -289,7 +289,7 @@ This allows building both hostapd and wpa_supplicant as a single binary
  {
        struct wpa_supplicant *wpa_s = ctx;
        int resched;
-@@ -7742,7 +7742,7 @@ void wpa_supplicant_event(void *ctx, enu
+@@ -7813,7 +7813,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
-@@ -8303,7 +8303,6 @@ struct wpa_interface * wpa_supplicant_ma
+@@ -8454,7 +8454,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()
-@@ -8338,6 +8337,11 @@ static int wpa_supplicant_match_existing
+@@ -8489,6 +8488,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
-@@ -8594,6 +8598,8 @@ struct wpa_global * wpa_supplicant_init(
+@@ -8745,6 +8749,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 0e175c82ac839708f166daeb6618c05b737579be..0f83e93ba61e10092b0d6a93f9fbd033c0a59c05 100644 (file)
@@ -5,7 +5,7 @@ Subject: [PATCH] hostapd: build with LTO enabled (using jobserver for parallel
 
 --- a/hostapd/Makefile
 +++ b/hostapd/Makefile
-@@ -1443,7 +1443,7 @@ hostapd_multi.a: $(BCHECK) $(OBJS)
+@@ -1451,7 +1451,7 @@ hostapd_multi.a: $(BCHECK) $(OBJS)
        @$(AR) cr $@ hostapd_multi.o $(OBJS)
  
  hostapd: $(OBJS)
@@ -14,7 +14,7 @@ Subject: [PATCH] hostapd: build with LTO enabled (using jobserver for parallel
        @$(E) "  LD " $@
  
  ifdef CONFIG_WPA_TRACE
-@@ -1454,7 +1454,7 @@ _OBJS_VAR := OBJS_c
+@@ -1462,7 +1462,7 @@ _OBJS_VAR := OBJS_c
  include ../src/objs.mk
  
  hostapd_cli: $(OBJS_c)
index 373df0da73898216d84641a36fa793cabbb704bc..624098bae24ad63f07e0facc898da190f2b811fb 100644 (file)
@@ -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,
-@@ -1717,13 +1713,10 @@ static const struct hostapd_cli_cmd host
+@@ -1751,13 +1747,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,
-@@ -1748,7 +1741,6 @@ static const struct hostapd_cli_cmd host
+@@ -1782,7 +1775,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 5cd89e73d34fa88e12950ebfe5fbae00bd5bd397..9201c4947b9e83cc1993717c95b3aea31508bcba 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
-@@ -3987,6 +3987,7 @@ static int hostapd_ctrl_iface_receive_pr
+@@ -4089,6 +4089,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) {
-@@ -4028,6 +4029,7 @@ static int hostapd_ctrl_iface_receive_pr
+@@ -4130,6 +4131,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);
@@ -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)
  {
-@@ -3049,6 +3050,7 @@ int ieee802_1x_get_mib_sta(struct hostap
+@@ -3052,6 +3053,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
-@@ -6548,6 +6548,7 @@ static const char * wpa_bool_txt(int val
+@@ -6552,6 +6552,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) \
-@@ -6700,7 +6701,7 @@ int wpa_get_mib_sta(struct wpa_state_mac
+@@ -6704,7 +6705,7 @@ int wpa_get_mib_sta(struct wpa_state_mac
  
        return len;
  }
index ea71a12c1b884ec48f7fa8d13c96a3acf1fdbd7a..aa17921cddb0933c410f8c3be4fdc9db5671396f 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
-@@ -3530,6 +3530,10 @@ static int hostapd_config_fill(struct ho
+@@ -3666,6 +3666,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
-@@ -1131,6 +1131,8 @@ struct hostapd_config {
+@@ -1142,6 +1142,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
-@@ -619,7 +619,8 @@ static int ieee80211n_check_40mhz(struct
+@@ -621,7 +621,8 @@ static int ieee80211n_check_40mhz(struct
        int ret;
  
        /* Check that HT40 is used and PRI / SEC switch is allowed */
index 500a8ca6afdf4b2035a2b7126105612f2a79033b..c8d9bfec1aaaa7d19abd94a4ca78f3b6db3f1a45 100644 (file)
@@ -15,7 +15,7 @@ Subject: [PATCH] Allow HT40 also on 2.4GHz if noscan option is set, which also
        { STR(id_str) },
 --- a/wpa_supplicant/config_file.c
 +++ b/wpa_supplicant/config_file.c
-@@ -885,6 +885,7 @@ static void wpa_config_write_network(FIL
+@@ -883,6 +883,7 @@ static void wpa_config_write_network(FIL
        INT(mode);
  #ifdef CONFIG_MESH
        INT(no_auto_peer);
@@ -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
-@@ -3134,7 +3134,7 @@ static bool ibss_mesh_can_use_vht(struct
+@@ -3158,7 +3158,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))
-@@ -3208,7 +3208,7 @@ static void ibss_mesh_select_40mhz(struc
+@@ -3232,7 +3232,7 @@ static void ibss_mesh_select_40mhz(struc
        int i, res;
        unsigned int j;
        static const int ht40plus_5ghz[] = {
@@ -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
        };
        static const int ht40plus_6ghz[] = {
-@@ -3561,7 +3561,7 @@ void ibss_mesh_setup_freq(struct wpa_sup
+@@ -3585,7 +3585,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);
-@@ -3605,6 +3605,8 @@ void ibss_mesh_setup_freq(struct wpa_sup
+@@ -3629,6 +3629,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 7a32e1d2fdefa70eb80440c2f1fab89cf0690543..d346375549b526f5c671aadeb17507affe8ae90f 100644 (file)
@@ -5,7 +5,7 @@ Subject: [PATCH] rescan_immediately.patch
 
 --- a/wpa_supplicant/wpa_supplicant.c
 +++ b/wpa_supplicant/wpa_supplicant.c
-@@ -6519,7 +6519,7 @@ wpa_supplicant_alloc(struct wpa_supplica
+@@ -6661,7 +6661,7 @@ wpa_supplicant_alloc(struct wpa_supplica
        if (wpa_s == NULL)
                return NULL;
        wpa_s->scan_req = INITIAL_SCAN_REQ;
index 81725f8e66b031fb7c7a8ca091026b89fa7f8eed..a4420cc9612e5173b3f1c6c13ddd8e65dc062d6a 100644 (file)
@@ -1,6 +1,6 @@
 --- a/src/drivers/driver_nl80211.h
 +++ b/src/drivers/driver_nl80211.h
-@@ -99,6 +99,7 @@ struct i802_bss {
+@@ -101,6 +101,7 @@ struct i802_bss {
        u64 wdev_id;
        char ifname[IFNAMSIZ + 1];
        char brname[IFNAMSIZ];
@@ -8,7 +8,7 @@
        unsigned int added_if_into_bridge:1;
        unsigned int already_in_bridge:1;
        unsigned int added_bridge:1;
-@@ -354,7 +355,7 @@ send_and_recv_resp(struct wpa_driver_nl8
+@@ -356,7 +357,7 @@ send_and_recv_resp(struct wpa_driver_nl8
  
  int nl80211_create_iface(struct wpa_driver_nl80211_data *drv,
                         const char *ifname, enum nl80211_iftype iftype,
@@ -19,7 +19,7 @@
  void nl80211_remove_iface(struct wpa_driver_nl80211_data *drv, int ifidx);
 --- a/src/drivers/driver_nl80211.c
 +++ b/src/drivers/driver_nl80211.c
-@@ -894,6 +894,7 @@ struct wiphy_idx_data {
+@@ -909,6 +909,7 @@ struct wiphy_idx_data {
        u8 use_4addr;
        u64 wdev_id;
        bool wdev_id_set;
@@ -27,7 +27,7 @@
  };
  
  
-@@ -924,6 +925,9 @@ static int netdev_info_handler(struct nl
+@@ -939,6 +940,9 @@ static int netdev_info_handler(struct nl
                info->wdev_id_set = true;
        }
  
@@ -37,7 +37,7 @@
        return NL_SKIP;
  }
  
-@@ -990,6 +994,20 @@ static int nl80211_get_4addr(struct i802
+@@ -1005,6 +1009,20 @@ static int nl80211_get_4addr(struct i802
  }
  
  
@@ -58,7 +58,7 @@
  static int nl80211_register_beacons(struct wpa_driver_nl80211_data *drv,
                                    struct nl80211_wiphy_data *w)
  {
-@@ -2608,6 +2626,8 @@ static void * wpa_driver_nl80211_drv_ini
+@@ -2623,6 +2641,8 @@ static void * wpa_driver_nl80211_drv_ini
                                               p2p_mode))
                goto failed;
  
@@ -67,7 +67,7 @@
        if (drv->capa.flags2 & WPA_DRIVER_FLAGS2_CONTROL_PORT_TX_STATUS) {
                drv->control_port_ap = 1;
                goto skip_wifi_status;
-@@ -6797,7 +6817,7 @@ const char * nl80211_iftype_str(enum nl8
+@@ -6812,7 +6832,7 @@ const char * nl80211_iftype_str(enum nl8
  static int nl80211_create_iface_once(struct wpa_driver_nl80211_data *drv,
                                     const char *ifname,
                                     enum nl80211_iftype iftype,
@@ -76,7 +76,7 @@
                                     int (*handler)(struct nl_msg *, void *),
                                     void *arg)
  {
-@@ -6817,6 +6837,10 @@ static int nl80211_create_iface_once(str
+@@ -6832,6 +6852,10 @@ static int nl80211_create_iface_once(str
        if (wds && nla_put_u8(msg, NL80211_ATTR_4ADDR, wds))
                goto fail;
  
@@ -87,7 +87,7 @@
        /*
         * Tell cfg80211 that the interface belongs to the socket that created
         * it, and the interface should be deleted when the socket is closed.
-@@ -6910,14 +6934,14 @@ static int nl80211_create_iface_once(str
+@@ -6943,7 +6967,7 @@ static int nl80211_use_existing_iface(st
  
  int nl80211_create_iface(struct wpa_driver_nl80211_data *drv,
                         const char *ifname, enum nl80211_iftype iftype,
@@ -96,7 +96,9 @@
                         int (*handler)(struct nl_msg *, void *),
                         void *arg, int use_existing)
  {
-       int ret;
+@@ -6952,8 +6976,8 @@ int nl80211_create_iface(struct wpa_driv
+       if (use_existing && if_nametoindex(ifname))
+               return nl80211_use_existing_iface(drv, ifname, iftype, addr);
  
 -      ret = nl80211_create_iface_once(drv, ifname, iftype, addr, wds, handler,
 -                                      arg);
  
        /* if error occurred and interface exists already */
        if (ret < 0 && if_nametoindex(ifname)) {
-@@ -6943,7 +6967,7 @@ int nl80211_create_iface(struct wpa_driv
+@@ -6968,7 +6992,7 @@ int nl80211_create_iface(struct wpa_driv
  
                /* Try to create the interface again */
                ret = nl80211_create_iface_once(drv, ifname, iftype, addr,
        }
  
        if (ret >= 0 && is_p2p_net_interface(iftype)) {
-@@ -9308,8 +9332,8 @@ static int i802_set_wds_sta(void *priv,
+@@ -9335,8 +9359,8 @@ static int i802_set_wds_sta(void *priv,
                if (!if_nametoindex(name)) {
                        if (nl80211_create_iface(drv, name,
                                                 NL80211_IFTYPE_AP_VLAN,
                                return -1;
  
                        if (bridge_ifname)
-@@ -9686,7 +9710,8 @@ static int wpa_driver_nl80211_if_add(voi
+@@ -9713,7 +9737,8 @@ static int wpa_driver_nl80211_if_add(voi
  
                os_memset(&nonnetdev_info, 0, sizeof(nonnetdev_info));
                ifidx = nl80211_create_iface(drv, ifname, nlmode, addr,
                                             &nonnetdev_info, use_existing);
                if (!nonnetdev_info.wdev_id_set || ifidx != 0) {
                        wpa_printf(MSG_ERROR,
-@@ -9705,7 +9730,8 @@ static int wpa_driver_nl80211_if_add(voi
+@@ -9732,7 +9757,8 @@ static int wpa_driver_nl80211_if_add(voi
                           (long long unsigned int) nonnetdev_info.wdev_id);
        } else {
                ifidx = nl80211_create_iface(drv, ifname, nlmode, addr,
                if (use_existing && ifidx == -ENFILE) {
                        added = 0;
                        ifidx = if_nametoindex(ifname);
-@@ -9775,6 +9801,8 @@ static int wpa_driver_nl80211_if_add(voi
+@@ -9802,6 +9828,8 @@ static int wpa_driver_nl80211_if_add(voi
                new_bss->ctx = bss_ctx;
                new_bss->added_if = added;
  
index 4762b6a9a5f12e1e426947fd4dd0934e354fb255..69d7cf50357d911b80bcf972c22a27d2283d639c 100644 (file)
@@ -85,7 +85,7 @@ Subject: [PATCH] hostapd: add configurable debug message minimum priority to
        char *buf;
 --- a/src/utils/wpa_debug.h
 +++ b/src/utils/wpa_debug.h
-@@ -76,6 +76,17 @@ void wpa_debug_close_file(void);
+@@ -81,6 +81,17 @@ void wpa_debug_close_file(void);
  void wpa_debug_setup_stdout(void);
  void wpa_debug_stop_log(void);
  
@@ -103,7 +103,7 @@ Subject: [PATCH] hostapd: add configurable debug message minimum priority to
  /**
   * wpa_debug_printf_timestamp - Print timestamp for debug output
   *
-@@ -96,9 +107,15 @@ void wpa_debug_print_timestamp(void);
+@@ -101,9 +112,15 @@ void wpa_debug_print_timestamp(void);
   *
   * Note: New line '\n' is added to the end of the text when printing to stdout.
   */
@@ -120,7 +120,7 @@ Subject: [PATCH] hostapd: add configurable debug message minimum priority to
  /**
   * wpa_hexdump - conditional hex dump
   * @level: priority level (MSG_*) of the message
-@@ -110,7 +127,13 @@ PRINTF_FORMAT(2, 3);
+@@ -115,7 +132,13 @@ PRINTF_FORMAT(2, 3);
   * output may be directed to stdout, stderr, and/or syslog based on
   * configuration. The contents of buf is printed out has hex dump.
   */
@@ -135,7 +135,7 @@ Subject: [PATCH] hostapd: add configurable debug message minimum priority to
  
  static inline void wpa_hexdump_buf(int level, const char *title,
                                   const struct wpabuf *buf)
-@@ -132,7 +155,13 @@ static inline void wpa_hexdump_buf(int l
+@@ -137,7 +160,13 @@ static inline void wpa_hexdump_buf(int l
   * like wpa_hexdump(), but by default, does not include secret keys (passwords,
   * etc.) in debug output.
   */
@@ -150,7 +150,7 @@ Subject: [PATCH] hostapd: add configurable debug message minimum priority to
  
  static inline void wpa_hexdump_buf_key(int level, const char *title,
                                       const struct wpabuf *buf)
-@@ -154,8 +183,14 @@ static inline void wpa_hexdump_buf_key(i
+@@ -159,8 +188,14 @@ static inline void wpa_hexdump_buf_key(i
   * the hex numbers and ASCII characters (for printable range) are shown. 16
   * bytes per line will be shown.
   */
@@ -165,9 +165,9 @@ Subject: [PATCH] hostapd: add configurable debug message minimum priority to
 +      _wpa_hexdump_ascii(level, title, buf, len, 1);
 +}
  
- /**
-  * wpa_hexdump_ascii_key - conditional hex dump, hide keys
-@@ -171,8 +206,14 @@ void wpa_hexdump_ascii(int level, const
+ static inline void wpa_hexdump_ascii_buf(int level, const char *title,
+                                        const struct wpabuf *buf)
+@@ -183,8 +218,14 @@ static inline void wpa_hexdump_ascii_buf
   * bytes per line will be shown. This works like wpa_hexdump_ascii(), but by
   * default, does not include secret keys (passwords, etc.) in debug output.
   */
@@ -184,7 +184,7 @@ Subject: [PATCH] hostapd: add configurable debug message minimum priority to
  
  /*
   * wpa_dbg() behaves like wpa_msg(), but it can be removed from build to reduce
-@@ -209,7 +250,12 @@ void wpa_hexdump_ascii_key(int level, co
+@@ -221,7 +262,12 @@ void wpa_hexdump_ascii_key(int level, co
   *
   * Note: New line '\n' is added to the end of the text when printing to stdout.
   */
@@ -198,7 +198,7 @@ Subject: [PATCH] hostapd: add configurable debug message minimum priority to
  
  /**
   * wpa_msg_ctrl - Conditional printf for ctrl_iface monitors
-@@ -223,8 +269,13 @@ void wpa_msg(void *ctx, int level, const
+@@ -235,8 +281,13 @@ void wpa_msg(void *ctx, int level, const
   * attached ctrl_iface monitors. In other words, it can be used for frequent
   * events that do not need to be sent to syslog.
   */
index 144fd54ccdb6f578dd1824fafa401badb1c5dda5..89253768c373c6103a8dccca3e4af2c3d292a682 100644 (file)
@@ -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
-@@ -4784,6 +4784,12 @@ static void wpas_start_assoc_cb(struct w
+@@ -4939,6 +4939,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 ea506f509afd188bf6e2e40206d1c749f1b5f9fc..6e34b8c6b98d090f115f28eb8acb5f64fc5a548d 100644 (file)
@@ -19,7 +19,7 @@ Tested-by: Simon Wunderlich <simon.wunderlich@openmesh.com>
 
 --- a/src/drivers/driver.h
 +++ b/src/drivers/driver.h
-@@ -1975,6 +1975,7 @@ struct wpa_driver_mesh_join_params {
+@@ -1981,6 +1981,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
-@@ -13055,6 +13055,18 @@ static int nl80211_put_mesh_id(struct nl
+@@ -13095,6 +13095,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)
  {
-@@ -13116,6 +13128,7 @@ static int nl80211_join_mesh(struct i802
+@@ -13156,6 +13168,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 bb75ca2ea1369256d7cdee11e948af9ca5cbc8f8..97ed624b054b2bff4d4daa037971f566d855a355 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
-@@ -3568,6 +3568,10 @@ void ibss_mesh_setup_freq(struct wpa_sup
+@@ -3592,6 +3592,10 @@ void ibss_mesh_setup_freq(struct wpa_sup
  
        freq->freq = ssid->frequency;
  
index fbaed04418a8af1ea5de3987226d1b545f5f1a7e..0d2069dae0cf170a62b9d48c2d980357615ba05e 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
-@@ -3584,6 +3584,8 @@ static int hostapd_config_fill(struct ho
+@@ -3720,6 +3720,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 38151ea422f002d971abbeaaa7794a2ef8da50bd..1980fe168d5f8c84128aa7b9a478d8d703cc6579 100644 (file)
@@ -53,7 +53,7 @@ probe/assoc/auth requests via object subscribe.
        }
 --- a/src/ap/beacon.c
 +++ b/src/ap/beacon.c
-@@ -1471,6 +1471,12 @@ void handle_probe_req(struct hostapd_dat
+@@ -1479,6 +1479,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)
-@@ -1678,6 +1684,12 @@ void handle_probe_req(struct hostapd_dat
+@@ -1686,6 +1692,12 @@ void handle_probe_req(struct hostapd_dat
        }
  #endif /* CONFIG_P2P */
  
@@ -116,7 +116,7 @@ probe/assoc/auth requests via object subscribe.
  #ifdef CONFIG_P2P
        if (elems.p2p) {
                wpabuf_free(sta->p2p_ie);
-@@ -1428,6 +1438,7 @@ void hostapd_event_ch_switch(struct host
+@@ -1434,6 +1444,7 @@ void hostapd_event_ch_switch(struct host
  
                wpa_msg(hapd->msg_ctx, MSG_INFO, AP_CSA_FINISHED
                        "freq=%d dfs=%d", freq, is_dfs);
@@ -126,7 +126,7 @@ probe/assoc/auth requests via object subscribe.
                if (is_dfs0 > 0 &&
 --- a/src/ap/hostapd.c
 +++ b/src/ap/hostapd.c
-@@ -488,6 +488,7 @@ void hostapd_free_hapd_data(struct hosta
+@@ -525,6 +525,7 @@ void hostapd_free_hapd_data(struct hosta
        hapd->beacon_set_done = 0;
  
        wpa_printf(MSG_DEBUG, "%s(%s)", __func__, hapd->conf->iface);
@@ -134,7 +134,7 @@ probe/assoc/auth requests via object subscribe.
        accounting_deinit(hapd);
        hostapd_deinit_wpa(hapd);
        vlan_deinit(hapd);
-@@ -1338,6 +1339,8 @@ static int hostapd_start_beacon(struct h
+@@ -1383,6 +1384,8 @@ static int hostapd_start_beacon(struct h
        if (hapd->driver && hapd->driver->set_operstate)
                hapd->driver->set_operstate(hapd->drv_priv, 1);
  
@@ -143,7 +143,7 @@ probe/assoc/auth requests via object subscribe.
        return 0;
  }
  
-@@ -2581,6 +2584,7 @@ static int hostapd_setup_interface_compl
+@@ -2626,6 +2629,7 @@ static int hostapd_setup_interface_compl
        if (err)
                goto fail;
  
@@ -151,7 +151,7 @@ probe/assoc/auth requests via object subscribe.
        wpa_printf(MSG_DEBUG, "Completing interface initialization");
        if (iface->freq) {
  #ifdef NEED_AP_MLME
-@@ -2795,6 +2799,7 @@ dfs_offload:
+@@ -2855,6 +2859,7 @@ dfs_offload:
  
  fail:
        wpa_printf(MSG_ERROR, "Interface initialization failed");
@@ -159,7 +159,7 @@ probe/assoc/auth requests via object subscribe.
  
        if (iface->is_no_ir) {
                hostapd_set_state(iface, HAPD_IFACE_NO_IR);
-@@ -3544,6 +3549,7 @@ void hostapd_interface_deinit_free(struc
+@@ -3605,6 +3610,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;
@@ -185,7 +185,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;
-@@ -793,6 +795,7 @@ hostapd_alloc_bss_data(struct hostapd_if
+@@ -822,6 +824,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);
@@ -195,7 +195,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
-@@ -2026,6 +2026,7 @@ static void handle_auth_sae(struct hosta
+@@ -2027,6 +2027,7 @@ static void handle_auth_sae(struct hosta
  
                        if (sae_check_confirm(sta->sae, var, var_len,
                                              NULL) < 0) {
@@ -203,7 +203,7 @@ probe/assoc/auth requests via object subscribe.
                                if (sae_password_track_fail(hapd, sta)) {
                                        wpa_printf(MSG_DEBUG,
                                                   "SAE: Reject mismatching Confirm so that another password can be attempted by "
-@@ -4218,7 +4219,7 @@ static void handle_auth(struct hostapd_d
+@@ -4222,7 +4223,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;
@@ -212,7 +212,7 @@ probe/assoc/auth requests via object subscribe.
        u16 fc;
        const u8 *challenge = NULL;
        u8 resp_ies[2 + WLAN_AUTH_CHALLENGE_LEN];
-@@ -4257,6 +4258,11 @@ static void handle_auth(struct hostapd_d
+@@ -4261,6 +4262,11 @@ static void handle_auth(struct hostapd_d
        else
                sa = mgmt->sa;
  #endif /* CONFIG_IEEE80211BE */
@@ -224,7 +224,7 @@ probe/assoc/auth requests via object subscribe.
  
        auth_alg = le_to_host16(mgmt->u.auth.auth_alg);
        auth_transaction = le_to_host16(mgmt->u.auth.auth_transaction);
-@@ -4447,6 +4453,13 @@ static void handle_auth(struct hostapd_d
+@@ -4453,6 +4459,13 @@ static void handle_auth(struct hostapd_d
                resp = WLAN_STATUS_UNSPECIFIED_FAILURE;
                goto fail;
        }
@@ -238,7 +238,7 @@ probe/assoc/auth requests via object subscribe.
        if (res == HOSTAPD_ACL_PENDING)
                return;
  
-@@ -7190,7 +7203,7 @@ static void handle_assoc(struct hostapd_
+@@ -7204,7 +7217,7 @@ static void handle_assoc(struct hostapd_
        int resp = WLAN_STATUS_SUCCESS;
        u16 reply_res = WLAN_STATUS_UNSPECIFIED_FAILURE;
        const u8 *pos;
@@ -247,7 +247,7 @@ probe/assoc/auth requests via object subscribe.
        struct sta_info *sta;
        u8 *tmp = NULL;
  #ifdef CONFIG_FILS
-@@ -7446,6 +7459,11 @@ static void handle_assoc(struct hostapd_
+@@ -7460,6 +7473,11 @@ static void handle_assoc(struct hostapd_
                left = res;
        }
  #endif /* CONFIG_FILS */
@@ -259,7 +259,7 @@ probe/assoc/auth requests via object subscribe.
  
        /* followed by SSID and Supported rates; and HT capabilities if 802.11n
         * is used */
-@@ -7538,6 +7556,7 @@ static void handle_assoc(struct hostapd_
+@@ -7552,6 +7570,7 @@ static void handle_assoc(struct hostapd_
  
  #ifdef CONFIG_TAXONOMY
        taxonomy_sta_info_assoc_req(hapd, sta, pos, left);
@@ -267,7 +267,7 @@ probe/assoc/auth requests via object subscribe.
  #endif /* CONFIG_TAXONOMY */
  
        sta->pending_wds_enable = 0;
-@@ -7551,6 +7570,13 @@ static void handle_assoc(struct hostapd_
+@@ -7565,6 +7584,13 @@ static void handle_assoc(struct hostapd_
        }
  #endif /* CONFIG_FILS */
  
@@ -281,7 +281,7 @@ probe/assoc/auth requests via object subscribe.
   fail:
  
        /*
-@@ -7798,6 +7824,7 @@ static void handle_disassoc(struct hosta
+@@ -7812,6 +7838,7 @@ static void handle_disassoc(struct hosta
                           (unsigned long) len);
                return;
        }
@@ -289,7 +289,7 @@ probe/assoc/auth requests via object subscribe.
  
        sta = ap_get_sta(hapd, mgmt->sa);
        if (!sta) {
-@@ -7829,6 +7856,8 @@ static void handle_deauth(struct hostapd
+@@ -7843,6 +7870,8 @@ static void handle_deauth(struct hostapd
        /* Clear the PTKSA cache entries for PASN */
        ptksa_cache_flush(hapd->ptksa, mgmt->sa, WPA_CIPHER_NONE);
  
@@ -321,7 +321,7 @@ probe/assoc/auth requests via object subscribe.
                wpa_printf(MSG_DEBUG, "RRM action %u is not supported",
 --- a/src/ap/sta_info.c
 +++ b/src/ap/sta_info.c
-@@ -609,6 +609,7 @@ void ap_handle_timer(void *eloop_ctx, vo
+@@ -621,6 +621,7 @@ void ap_handle_timer(void *eloop_ctx, vo
                hostapd_logger(hapd, sta->addr, HOSTAPD_MODULE_IEEE80211,
                               HOSTAPD_LEVEL_INFO, "deauthenticated due to "
                               "local deauth request");
@@ -329,7 +329,7 @@ probe/assoc/auth requests via object subscribe.
                ap_free_sta(hapd, sta);
                return;
        }
-@@ -777,6 +778,7 @@ skip_poll:
+@@ -789,6 +790,7 @@ skip_poll:
                mlme_deauthenticate_indication(
                        hapd, sta,
                        WLAN_REASON_PREV_AUTH_NOT_VALID);
@@ -337,7 +337,7 @@ probe/assoc/auth requests via object subscribe.
                ap_free_sta(hapd, sta);
                break;
        }
-@@ -1778,17 +1780,30 @@ void ap_sta_set_authorized_event(struct
+@@ -1793,17 +1795,30 @@ void ap_sta_set_authorized_event(struct
                os_snprintf(buf, sizeof(buf), MACSTR, MAC2STR(sta->addr));
  
        if (authorized) {
@@ -368,7 +368,7 @@ probe/assoc/auth requests via object subscribe.
  
  #ifdef CONFIG_P2P
                if (wpa_auth_get_ip_addr(sta->wpa_sm, ip_addr_buf) == 0) {
-@@ -1800,6 +1815,13 @@ void ap_sta_set_authorized_event(struct
+@@ -1815,6 +1830,13 @@ void ap_sta_set_authorized_event(struct
                }
  #endif /* CONFIG_P2P */
  
@@ -382,7 +382,7 @@ probe/assoc/auth requests via object subscribe.
                keyid = ap_sta_wpa_get_keyid(hapd, sta);
                if (keyid) {
                        os_snprintf(keyid_buf, sizeof(keyid_buf),
-@@ -1824,17 +1846,19 @@ void ap_sta_set_authorized_event(struct
+@@ -1839,17 +1861,19 @@ void ap_sta_set_authorized_event(struct
                                    " vlanid=%u", sta->vlan_id);
  #endif /* CONFIG_NO_VLAN */
  
@@ -504,7 +504,7 @@ probe/assoc/auth requests via object subscribe.
  }
 --- a/src/ap/wpa_auth_glue.c
 +++ b/src/ap/wpa_auth_glue.c
-@@ -415,6 +415,7 @@ static void hostapd_wpa_auth_psk_failure
+@@ -416,6 +416,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));
index 0d40eda49de0ea0581934bcf88b3c230b3d71249..348e5c5eacc0aac97272f85a017b2760d4eb50be 100644 (file)
@@ -8,15 +8,15 @@ as adding/removing interfaces.
 
 --- a/wpa_supplicant/wpa_supplicant.c
 +++ b/wpa_supplicant/wpa_supplicant.c
-@@ -1276,6 +1276,7 @@ void wpa_supplicant_set_state(struct wpa
+@@ -1292,6 +1292,7 @@ void wpa_supplicant_set_state(struct wpa
                sme_sched_obss_scan(wpa_s, 0);
        }
        wpa_s->wpa_state = state;
 +      wpas_ucode_update_state(wpa_s);
  
- #ifndef CONFIG_NO_ROBUST_AV
-       if (state == WPA_COMPLETED && dl_list_len(&wpa_s->active_scs_ids) &&
-@@ -8436,6 +8437,8 @@ struct wpa_supplicant * wpa_supplicant_a
+       if (state == WPA_COMPLETED && new_connection &&
+           wpa_s->conf->wfa_gen_capa == WFA_GEN_CAPA_PROTECTED &&
+@@ -8587,6 +8588,8 @@ struct wpa_supplicant * wpa_supplicant_a
        }
  #endif /* CONFIG_P2P */
  
@@ -25,7 +25,7 @@ as adding/removing interfaces.
        return wpa_s;
  }
  
-@@ -8462,6 +8465,8 @@ int wpa_supplicant_remove_iface(struct w
+@@ -8613,6 +8616,8 @@ int wpa_supplicant_remove_iface(struct w
        struct wpa_supplicant *parent = wpa_s->parent;
  #endif /* CONFIG_MESH */
  
@@ -34,7 +34,7 @@ as adding/removing interfaces.
        /* Remove interface from the global list of interfaces */
        prev = global->ifaces;
        if (prev == wpa_s) {
-@@ -8781,6 +8786,7 @@ struct wpa_global * wpa_supplicant_init(
+@@ -8932,6 +8937,7 @@ struct wpa_global * wpa_supplicant_init(
  
        eloop_register_timeout(WPA_SUPPLICANT_CLEANUP_INTERVAL, 0,
                               wpas_periodic, global, NULL);
@@ -42,7 +42,7 @@ as adding/removing interfaces.
  
        return global;
  }
-@@ -8853,6 +8859,8 @@ void wpa_supplicant_deinit(struct wpa_gl
+@@ -9004,6 +9010,8 @@ void wpa_supplicant_deinit(struct wpa_gl
  
        wpas_notify_supplicant_deinitialized(global);
  
@@ -165,7 +165,7 @@ as adding/removing interfaces.
  ifdef CONFIG_CODE_COVERAGE
 --- a/hostapd/ctrl_iface.c
 +++ b/hostapd/ctrl_iface.c
-@@ -5960,6 +5960,7 @@ try_again:
+@@ -6076,6 +6076,7 @@ try_again:
                return -1;
        }
  
@@ -173,7 +173,7 @@ as adding/removing interfaces.
        wpa_msg_register_cb(hostapd_ctrl_iface_msg_cb);
  
        return 0;
-@@ -6061,6 +6062,7 @@ fail:
+@@ -6177,6 +6178,7 @@ fail:
        os_free(fname);
  
        interface->global_ctrl_sock = s;
@@ -227,7 +227,16 @@ as adding/removing interfaces.
  {
 --- a/src/ap/hostapd.c
 +++ b/src/ap/hostapd.c
-@@ -263,6 +263,8 @@ int hostapd_reload_config(struct hostapd
+@@ -66,7 +66,7 @@ static int hostapd_broadcast_wep_clear(s
+ #endif /* CONFIG_WEP */
+ static int setup_interface2(struct hostapd_iface *iface);
+ static void channel_list_update_timeout(void *eloop_ctx, void *timeout_ctx);
+-static void hostapd_cleanup_unused_mlds(struct hapd_interfaces *interfaces);
++void hostapd_cleanup_unused_mlds(struct hapd_interfaces *interfaces);
+ static void hostapd_interface_setup_failure_handler(void *eloop_ctx,
+                                                   void *timeout_ctx);
+@@ -295,6 +295,8 @@ int hostapd_reload_config(struct hostapd
        struct hostapd_config *newconf, *oldconf;
        size_t j;
  
@@ -236,7 +245,7 @@ as adding/removing interfaces.
        if (iface->config_fname == NULL) {
                /* Only in-memory config in use - assume it has been updated */
                hostapd_clear_old(iface);
-@@ -488,6 +490,7 @@ void hostapd_free_hapd_data(struct hosta
+@@ -525,6 +527,7 @@ void hostapd_free_hapd_data(struct hosta
        hapd->beacon_set_done = 0;
  
        wpa_printf(MSG_DEBUG, "%s(%s)", __func__, hapd->conf->iface);
@@ -244,7 +253,7 @@ as adding/removing interfaces.
        hostapd_ubus_free_bss(hapd);
        accounting_deinit(hapd);
        hostapd_deinit_wpa(hapd);
-@@ -649,7 +652,7 @@ static void hostapd_mld_move_vlan_list(s
+@@ -686,7 +689,7 @@ static void hostapd_mld_move_vlan_list(s
   * If the BSS being removed is the first link, the next link becomes the first
   * link.
   */
@@ -253,15 +262,15 @@ as adding/removing interfaces.
  {
  #ifdef CONFIG_IEEE80211BE
        int i;
-@@ -757,6 +760,7 @@ void hostapd_cleanup_iface_partial(struc
+@@ -795,6 +798,7 @@ void hostapd_cleanup_iface_partial(struc
  static void hostapd_cleanup_iface(struct hostapd_iface *iface)
  {
        wpa_printf(MSG_DEBUG, "%s(%p)", __func__, iface);
 +      hostapd_ucode_free_iface(iface);
+       hostapd_afc_stop(iface);
        eloop_cancel_timeout(hostapd_interface_setup_failure_handler, iface,
                             NULL);
-@@ -1340,6 +1344,7 @@ static int hostapd_start_beacon(struct h
+@@ -1385,6 +1389,7 @@ static int hostapd_start_beacon(struct h
                hapd->driver->set_operstate(hapd->drv_priv, 1);
  
        hostapd_ubus_add_bss(hapd);
@@ -269,7 +278,7 @@ as adding/removing interfaces.
  
        return 0;
  }
-@@ -1415,7 +1420,7 @@ static int hostapd_bss_radius_init(struc
+@@ -1460,7 +1465,7 @@ static int hostapd_bss_radius_init(struc
   * initialized. Most of the modules that are initialized here will be
   * deinitialized in hostapd_cleanup().
   */
@@ -278,7 +287,7 @@ as adding/removing interfaces.
                             bool start_beacon)
  {
        struct hostapd_bss_config *conf = hapd->conf;
-@@ -1458,12 +1463,17 @@ static int hostapd_setup_bss(struct host
+@@ -1503,12 +1508,17 @@ static int hostapd_setup_bss(struct host
  
        if (!first) {
                u8 *addr = hapd->own_addr;
@@ -297,7 +306,7 @@ as adding/removing interfaces.
                                             hapd->iface->bss[0]->own_addr) ==
                            0) {
                                wpa_printf(MSG_ERROR, "BSS '%s' may not have "
-@@ -1493,6 +1503,7 @@ static int hostapd_setup_bss(struct host
+@@ -1538,6 +1548,7 @@ static int hostapd_setup_bss(struct host
                                           hapd->mld_link_id, hapd->conf->iface);
                                goto setup_mld;
                        }
@@ -305,7 +314,7 @@ as adding/removing interfaces.
                }
  #endif /* CONFIG_IEEE80211BE */
  
-@@ -1501,7 +1512,7 @@ static int hostapd_setup_bss(struct host
+@@ -1546,7 +1557,7 @@ static int hostapd_setup_bss(struct host
                                   conf->iface, addr, hapd,
                                   &hapd->drv_priv, force_ifname, if_addr,
                                   conf->bridge[0] ? conf->bridge : NULL,
@@ -314,7 +323,7 @@ as adding/removing interfaces.
                        wpa_printf(MSG_ERROR, "Failed to add BSS (BSSID="
                                   MACSTR ")", MAC2STR(hapd->own_addr));
                        hapd->interface_added = 0;
-@@ -1542,6 +1553,8 @@ setup_mld:
+@@ -1587,6 +1598,8 @@ setup_mld:
        }
  #endif /* CONFIG_IEEE80211BE */
  
@@ -323,7 +332,7 @@ as adding/removing interfaces.
        if (conf->wmm_enabled < 0)
                conf->wmm_enabled = hapd->iconf->ieee80211n |
                        hapd->iconf->ieee80211ax;
-@@ -1870,7 +1883,7 @@ int hostapd_set_acl(struct hostapd_data
+@@ -1915,7 +1928,7 @@ int hostapd_set_acl(struct hostapd_data
  }
  
  
@@ -332,7 +341,7 @@ as adding/removing interfaces.
  {
  #ifdef CONFIG_IEEE80211BE
        int ret;
-@@ -2543,7 +2556,7 @@ static int hostapd_owe_iface_iter2(struc
+@@ -2588,7 +2601,7 @@ static int hostapd_owe_iface_iter2(struc
  #endif /* CONFIG_OWE */
  
  
@@ -341,7 +350,7 @@ as adding/removing interfaces.
  {
  #ifdef CONFIG_OWE
        /* Check whether the enabled BSS can complete OWE transition mode
-@@ -3000,7 +3013,7 @@ hostapd_alloc_bss_data(struct hostapd_if
+@@ -3060,7 +3073,7 @@ hostapd_alloc_bss_data(struct hostapd_if
  }
  
  
@@ -350,7 +359,7 @@ as adding/removing interfaces.
  {
        if (!hapd)
                return;
-@@ -3208,7 +3221,7 @@ fail:
+@@ -3269,7 +3282,7 @@ fail:
  }
  
  
@@ -359,7 +368,7 @@ as adding/removing interfaces.
  {
  #ifdef CONFIG_IEEE80211BE
        struct hostapd_mld *mld, **all_mld;
-@@ -4089,7 +4102,8 @@ int hostapd_remove_iface(struct hapd_int
+@@ -4150,7 +4163,8 @@ int hostapd_remove_iface(struct hapd_int
                hapd_iface = interfaces->iface[i];
                if (hapd_iface == NULL)
                        return -1;
@@ -367,8 +376,8 @@ as adding/removing interfaces.
 +              if (!os_strcmp(hapd_iface->phy, buf) ||
 +                  !os_strcmp(hapd_iface->conf->bss[0]->iface, buf)) {
                        wpa_printf(MSG_INFO, "Remove interface '%s'", buf);
-                       hapd_iface->driver_ap_teardown =
-                               !!(hapd_iface->drv_flags &
+                       return hostapd_remove_hapd_iface(hapd_iface);
+               }
 --- a/src/ap/hostapd.h
 +++ b/src/ap/hostapd.h
 @@ -19,6 +19,7 @@
@@ -406,7 +415,7 @@ as adding/removing interfaces.
        void *owner;
        char *config_fname;
        struct hostapd_config *conf;
-@@ -804,11 +811,16 @@ struct hostapd_iface * hostapd_init(stru
+@@ -833,11 +840,16 @@ 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);
@@ -423,7 +432,7 @@ as adding/removing interfaces.
  int hostapd_enable_iface(struct hostapd_iface *hapd_iface);
  int hostapd_reload_iface(struct hostapd_iface *hapd_iface);
  int hostapd_reload_bss_only(struct hostapd_data *bss);
-@@ -834,6 +846,7 @@ hostapd_switch_channel_fallback(struct h
+@@ -863,6 +875,7 @@ hostapd_switch_channel_fallback(struct h
  void hostapd_cleanup_cs_params(struct hostapd_data *hapd);
  void hostapd_periodic_iface(struct hostapd_iface *iface);
  int hostapd_owe_trans_get_info(struct hostapd_data *hapd);
@@ -433,7 +442,7 @@ as adding/removing interfaces.
  void hostapd_switch_color(struct hostapd_data *hapd, u64 bitmap);
 --- a/src/ap/ieee802_11.c
 +++ b/src/ap/ieee802_11.c
-@@ -763,12 +763,17 @@ const char * sae_get_password(struct hos
+@@ -764,12 +764,17 @@ const char * sae_get_password(struct hos
                              struct sae_pt **s_pt,
                              const struct sae_pk **s_pk)
  {
@@ -452,7 +461,7 @@ as adding/removing interfaces.
        /* With sae_track_password functionality enabled, try to first find the
         * next viable wildcard-address password if a password identifier was
         * not used. Select an wildcard-addr entry if the STA is known to have
-@@ -830,12 +835,30 @@ const char * sae_get_password(struct hos
+@@ -831,12 +836,30 @@ const char * sae_get_password(struct hos
                pt = hapd->conf->ssid.pt;
        }
  
@@ -485,7 +494,7 @@ as adding/removing interfaces.
                }
        }
  
-@@ -4608,6 +4631,12 @@ static void handle_auth(struct hostapd_d
+@@ -4614,6 +4637,12 @@ static void handle_auth(struct hostapd_d
                goto fail;
        }
  
@@ -500,7 +509,7 @@ as adding/removing interfaces.
  
 --- a/src/ap/sta_info.c
 +++ b/src/ap/sta_info.c
-@@ -541,6 +541,11 @@ void ap_free_sta(struct hostapd_data *ha
+@@ -553,6 +553,11 @@ void ap_free_sta(struct hostapd_data *ha
        os_free(sta->eap_auth_data.rsnxe);
  #endif /* CONFIG_IEEE8021X_AUTH */
  
@@ -512,7 +521,7 @@ as adding/removing interfaces.
        os_free(sta);
  }
  
-@@ -1764,6 +1769,8 @@ void ap_sta_set_authorized_event(struct
+@@ -1779,6 +1784,8 @@ void ap_sta_set_authorized_event(struct
  #endif /* CONFIG_P2P */
        const u8 *ip_ptr = NULL;
  
@@ -535,7 +544,7 @@ as adding/removing interfaces.
        char *radius_cui; /* Chargeable-User-Identity from RADIUS */
 --- a/src/ap/wpa_auth_glue.c
 +++ b/src/ap/wpa_auth_glue.c
-@@ -487,6 +487,7 @@ static const u8 * hostapd_wpa_auth_get_p
+@@ -488,6 +488,7 @@ static const u8 * hostapd_wpa_auth_get_p
        struct sta_info *sta = ap_get_sta(hapd, addr);
        const u8 *psk;
  
@@ -543,7 +552,7 @@ as adding/removing interfaces.
        if (vlan_id)
                *vlan_id = 0;
        if (psk_len)
-@@ -537,13 +538,18 @@ static const u8 * hostapd_wpa_auth_get_p
+@@ -538,13 +539,18 @@ static const u8 * hostapd_wpa_auth_get_p
         * returned psk which should not be returned again.
         * logic list (all hostapd_get_psk; all sta->psk)
         */
@@ -563,7 +572,7 @@ as adding/removing interfaces.
                        if (pos->is_passphrase) {
                                if (pbkdf2_sha1(pos->passphrase,
                                                hapd->conf->ssid.ssid,
-@@ -557,9 +563,13 @@ static const u8 * hostapd_wpa_auth_get_p
+@@ -558,9 +564,13 @@ static const u8 * hostapd_wpa_auth_get_p
                        }
                        if (pos->psk == prev_psk) {
                                psk = pos->next ? pos->next->psk : NULL;
@@ -579,7 +588,7 @@ as adding/removing interfaces.
  }
 --- a/src/drivers/driver.h
 +++ b/src/drivers/driver.h
-@@ -4429,6 +4429,25 @@ struct wpa_driver_ops {
+@@ -4440,6 +4440,25 @@ struct wpa_driver_ops {
                         const char *ifname);
  
        /**
@@ -605,7 +614,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)
-@@ -7424,6 +7443,7 @@ union wpa_event_data {
+@@ -7435,6 +7454,7 @@ union wpa_event_data {
  
        /**
         * struct ch_switch
@@ -613,7 +622,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
-@@ -7434,6 +7454,7 @@ union wpa_event_data {
+@@ -7445,6 +7465,7 @@ union wpa_event_data {
         * @punct_bitmap: Puncturing bitmap
         */
        struct ch_switch {
@@ -652,7 +661,7 @@ as adding/removing interfaces.
  
  static void nl80211_nlmsg_clear(struct nl_msg *msg)
  {
-@@ -638,6 +653,8 @@ int send_and_recv_glb(struct nl80211_glo
+@@ -653,6 +668,8 @@ int send_and_recv_glb(struct nl80211_glo
        if (!msg)
                return -ENOMEM;
  
@@ -661,7 +670,7 @@ as adding/removing interfaces.
        err.err = -ENOMEM;
  
        s_nl_cb = nl_socket_get_cb(nl_handle);
-@@ -682,6 +699,7 @@ int send_and_recv_glb(struct nl80211_glo
+@@ -697,6 +714,7 @@ int send_and_recv_glb(struct nl80211_glo
        err.err_info = err_info;
        err.drv = drv;
  
@@ -669,7 +678,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) {
-@@ -1117,6 +1135,7 @@ nl80211_get_wiphy_data_ap(struct i802_bs
+@@ -1132,6 +1150,7 @@ nl80211_get_wiphy_data_ap(struct i802_bs
                        os_free(w);
                        return NULL;
                }
@@ -677,7 +686,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,
-@@ -2224,6 +2243,7 @@ static int wpa_driver_nl80211_init_nl_gl
+@@ -2239,6 +2258,7 @@ static int wpa_driver_nl80211_init_nl_gl
        /* Needs to be registered early so that process_global_event() calls
         * the sync reply handler hook.
         */
@@ -685,7 +694,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,
-@@ -2469,6 +2489,7 @@ static int nl80211_init_bss(struct i802_
+@@ -2484,6 +2504,7 @@ static int nl80211_init_bss(struct i802_
        if (!bss->nl_cb)
                return -1;
  
@@ -693,7 +702,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,
-@@ -9476,6 +9497,7 @@ static void *i802_init(struct hostapd_da
+@@ -9503,6 +9524,7 @@ static void *i802_init(struct hostapd_da
        char master_ifname[IFNAMSIZ];
        int ifindex, br_ifindex = 0;
        int br_added = 0;
@@ -701,7 +710,7 @@ as adding/removing interfaces.
  
        bss = wpa_driver_nl80211_drv_init(hapd, params->ifname,
                                          params->global_priv, 1,
-@@ -9536,21 +9558,17 @@ static void *i802_init(struct hostapd_da
+@@ -9563,21 +9585,17 @@ static void *i802_init(struct hostapd_da
            (params->num_bridge == 0 || !params->bridge[0]))
                add_ifidx(drv, br_ifindex, drv->ifindex);
  
@@ -733,7 +742,7 @@ as adding/removing interfaces.
        }
  
        if (drv->capa.flags2 & WPA_DRIVER_FLAGS2_CONTROL_PORT_RX) {
-@@ -9941,6 +9959,50 @@ static int wpa_driver_nl80211_if_remove(
+@@ -9968,6 +9986,50 @@ static int wpa_driver_nl80211_if_remove(
        return 0;
  }
  
@@ -784,7 +793,7 @@ as adding/removing interfaces.
  
  static int cookie_handler(struct nl_msg *msg, void *arg)
  {
-@@ -11877,6 +11939,37 @@ static bool nl80211_is_drv_shared(void *
+@@ -11917,6 +11979,37 @@ static bool nl80211_is_drv_shared(void *
  #endif /* CONFIG_IEEE80211BE */
  
  
@@ -822,7 +831,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,
-@@ -16705,6 +16798,8 @@ const struct wpa_driver_ops wpa_driver_n
+@@ -16753,6 +16846,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,
@@ -965,7 +974,7 @@ as adding/removing interfaces.
        for (ssid = group; ssid; ssid = only_first_ssid ? NULL : ssid->pnext) {
                if (wpa_scan_res_ok(wpa_s, ssid, match_ssid, match_ssid_len,
                                    bss, bssid_ignore_count, debug_print, link))
-@@ -3139,8 +3146,8 @@ fail:
+@@ -3161,8 +3168,8 @@ fail:
  static void multi_ap_process_assoc_resp(struct wpa_supplicant *wpa_s,
                                        const u8 *ies, size_t ies_len)
  {
@@ -975,7 +984,7 @@ as adding/removing interfaces.
        u16 status;
  
        wpa_s->multi_ap_ie = 0;
-@@ -3151,13 +3158,13 @@ static void multi_ap_process_assoc_resp(
+@@ -3173,13 +3180,13 @@ static void multi_ap_process_assoc_resp(
                return;
  
        status = check_multi_ap_ie(elems.multi_ap + 4, elems.multi_ap_len - 4,
@@ -992,7 +1001,7 @@ as adding/removing interfaces.
                                       MULTI_AP_FRONTHAUL_BSS);
        wpa_s->multi_ap_ie = 1;
  }
-@@ -5916,6 +5923,13 @@ static void wpas_event_rx_mgmt_action(st
+@@ -5983,6 +5990,13 @@ static void wpas_event_rx_mgmt_action(st
        }
  #endif /* CONFIG_WNM */
  
@@ -1006,7 +1015,7 @@ as adding/removing interfaces.
  #ifdef CONFIG_GAS
        if ((mgmt->u.action.category == WLAN_ACTION_PUBLIC ||
             mgmt->u.action.category == WLAN_ACTION_PROTECTED_DUAL) &&
-@@ -6739,6 +6753,7 @@ void supplicant_event(void *ctx, enum wp
+@@ -6806,6 +6820,7 @@ void supplicant_event(void *ctx, enum wp
                event_to_string(event), event);
  #endif /* CONFIG_NO_STDOUT_DEBUG */
  
@@ -1086,7 +1095,7 @@ as adding/removing interfaces.
  int hostapd_dpp_configurator_add(struct hostapd_data *hapd, const char *cmd);
 --- a/src/ap/gas_serv.c
 +++ b/src/ap/gas_serv.c
-@@ -1402,8 +1402,8 @@ static void gas_serv_rx_gas_initial_req(
+@@ -1733,8 +1733,8 @@ static void gas_serv_rx_gas_initial_req(
        if (dpp) {
                struct wpabuf *msg;
  
@@ -1107,7 +1116,7 @@ as adding/removing interfaces.
  
  
  static int wpas_dpp_listen_start(struct wpa_supplicant *wpa_s,
-@@ -4122,6 +4123,9 @@ void wpas_dpp_rx_action(struct wpa_suppl
+@@ -4123,6 +4124,9 @@ void wpas_dpp_rx_action(struct wpa_suppl
                return;
        }
        wpa_hexdump(MSG_MSGDUMP, "DPP: Received message attributes", buf, len);
index 006b9a333edbbd0ce5588c7ed884f070e92799f5..61d8473f940dc8bbcf4ba42d3ec2d123bf3e42e9 100644 (file)
@@ -8,7 +8,7 @@ as adding/removing interfaces.
 
 --- a/hostapd/config_file.c
 +++ b/hostapd/config_file.c
-@@ -5027,7 +5027,14 @@ struct hostapd_config * hostapd_config_r
+@@ -5262,7 +5262,14 @@ struct hostapd_config * hostapd_config_r
        int errors = 0;
        size_t i;
  
@@ -26,7 +26,7 @@ as adding/removing interfaces.
                           "for reading.", fname);
 --- a/wpa_supplicant/config_file.c
 +++ b/wpa_supplicant/config_file.c
-@@ -391,8 +391,13 @@ struct wpa_config * wpa_config_read(cons
+@@ -389,8 +389,13 @@ struct wpa_config * wpa_config_read(cons
        while (identity_tail && identity_tail->next)
                identity_tail = identity_tail->next;
  
@@ -58,7 +58,7 @@ as adding/removing interfaces.
                return NULL;
 --- a/src/ap/hostapd.c
 +++ b/src/ap/hostapd.c
-@@ -3414,8 +3414,13 @@ hostapd_interface_init_bss(struct hapd_i
+@@ -3475,8 +3475,13 @@ hostapd_interface_init_bss(struct hapd_i
                }
        }
  
index a450dbed3faccda014dfc8cec4b39d42b844aedd..f8918c720d874c2fedf0431bd89b1b4eddd4b798 100644 (file)
@@ -8,7 +8,7 @@ was provided by the config
 
 --- a/hostapd/config_file.c
 +++ b/hostapd/config_file.c
-@@ -3427,6 +3427,8 @@ static int hostapd_config_fill(struct ho
+@@ -3563,6 +3563,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 51107d3173a14bdc65c9c12ad0ebafdeac8eb28b..77b9e1a5c6878d970362d48873d1edc122303589 100644 (file)
@@ -11,7 +11,7 @@ instead rely entirely on netifd handling this properly
 
 --- a/hostapd/config_file.c
 +++ b/hostapd/config_file.c
-@@ -2245,6 +2245,8 @@ static int hostapd_config_fill(struct ho
+@@ -2379,6 +2379,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 8719afe9508b5d6459b14fd9a2a6898a2a56d310..43d268df611ad9bcb04a1da472b6b044b57898c3 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
-@@ -2861,6 +2861,14 @@ static int hostapd_config_fill(struct ho
+@@ -2995,6 +2995,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
-@@ -1095,6 +1095,8 @@ struct hostapd_config {
+@@ -1106,6 +1106,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
-@@ -1708,7 +1708,7 @@ void handle_probe_req(struct hostapd_dat
+@@ -1716,7 +1716,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) &&
@@ -47,7 +47,7 @@ full device, e.g. in order to deal with hardware/driver limitations
                           " since no room for additional STA",
 --- a/src/ap/hostapd.c
 +++ b/src/ap/hostapd.c
-@@ -255,6 +255,29 @@ static int hostapd_iface_conf_changed(st
+@@ -287,6 +287,29 @@ static int hostapd_remove_hapd_iface(str
        return 0;
  }
  
@@ -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
-@@ -848,6 +848,7 @@ void hostapd_periodic_iface(struct hosta
+@@ -877,6 +877,7 @@ void hostapd_periodic_iface(struct hosta
  int hostapd_owe_trans_get_info(struct hostapd_data *hapd);
  void hostapd_owe_update_trans(struct hostapd_iface *iface);;
  void hostapd_ocv_check_csa_sa_query(void *eloop_ctx, void *timeout_ctx);
index e1ce995119bff1665fe36cf55375bca45eba0c23..62b6a9cfbbea698ec6af37a4058be992edfe3d76 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
-@@ -3066,6 +3066,8 @@ static int hostapd_config_fill(struct ho
+@@ -3202,6 +3202,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
-@@ -1928,8 +1928,12 @@ int hostapd_setup_wpa(struct hostapd_dat
+@@ -1929,8 +1929,12 @@ int hostapd_setup_wpa(struct hostapd_dat
            wpa_key_mgmt_ft(hapd->conf->wpa_key_mgmt)) {
                const char *ft_iface;
  
index a8f07d6c228ccd08ab3b0ea72b6dbd8acbbd540d..71268ea0ad89e99d8e788ff0de479cddc61b9f5f 100644 (file)
@@ -8,7 +8,7 @@ untagged DHCP packets
 
 --- a/hostapd/config_file.c
 +++ b/hostapd/config_file.c
-@@ -2249,6 +2249,8 @@ static int hostapd_config_fill(struct ho
+@@ -2383,6 +2383,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);
@@ -112,7 +112,7 @@ untagged DHCP packets
        hapd->x_snoop_initialized = false;
 --- a/src/drivers/driver.h
 +++ b/src/drivers/driver.h
-@@ -4849,7 +4849,7 @@ struct wpa_driver_ops {
+@@ -4860,7 +4860,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
-@@ -13575,7 +13575,7 @@ static const char * drv_br_net_param_str
+@@ -13615,7 +13615,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];
-@@ -13601,8 +13601,11 @@ static int wpa_driver_br_set_net_param(v
+@@ -13641,8 +13641,11 @@ static int wpa_driver_br_set_net_param(v
                        return -EINVAL;
        }
  
index 91a16d0e5617cb315fa4d47415ff84c87275807c..2696321e7833c784362a06f91b36e95c025487f5 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
-@@ -2636,6 +2636,8 @@ static int hostapd_config_fill(struct ho
+@@ -2770,6 +2770,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 16afbe7acf3331465ebd791b490776166417094e..84585beab61124ff3218ecb1f03554c07f0c9ab9 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
-@@ -1401,6 +1401,7 @@ static int hostapd_bss_radius_init(struc
+@@ -1446,6 +1446,7 @@ static int hostapd_bss_radius_init(struc
  
                os_memset(&das_conf, 0, sizeof(das_conf));
                das_conf.port = conf->radius_das_port;
index a605ab308e0f75082ef52d59e196de6292c04aeb..4aa1345d054afc259721386cde9446651f1e7f30 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
-@@ -1530,7 +1530,7 @@ void handle_probe_req(struct hostapd_dat
+@@ -1538,7 +1538,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 7d051d9eb0b64354a5fd68dfe4ac217aa57e456d..217e1c062c7f7c4c8bfe13a8580723b09cfd24de 100644 (file)
@@ -39,7 +39,7 @@ Hotfix-by: Sebastian Gottschall https://github.com/mirror/dd-wrt/commit/0c3001a6
 
 --- a/hostapd/Makefile
 +++ b/hostapd/Makefile
-@@ -1454,6 +1454,11 @@ CFLAGS += -DCONFIG_PROCESS_COORDINATION
+@@ -1462,6 +1462,11 @@ CFLAGS += -DCONFIG_PROCESS_COORDINATION
  OBJS += ../src/common/proc_coord.o
  endif
  
@@ -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
-@@ -5020,6 +5020,15 @@ static int hostapd_config_fill(struct ho
+@@ -5255,6 +5255,15 @@ static int hostapd_config_fill(struct ho
  #endif /* CONFIG_IEEE80211BE */
        } else if (os_strcmp(buf, "i2r_lmr_policy") == 0) {
                conf->i2r_lmr_policy = atoi(pos);
@@ -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
-@@ -1013,6 +1013,35 @@ struct hostapd_bss_config {
+@@ -1024,6 +1024,35 @@ struct hostapd_bss_config {
        unsigned int pmksa_caching_privacy:1;
        unsigned int eap_using_authentication_frames:1;
  #endif /* CONFIG_ENC_ASSOC  */
@@ -373,7 +373,7 @@ Hotfix-by: Sebastian Gottschall https://github.com/mirror/dd-wrt/commit/0c3001a6
  
  #ifdef CONFIG_FILS
  static struct wpabuf *
-@@ -5010,8 +5013,8 @@ static u16 check_multi_ap(struct hostapd
+@@ -5016,8 +5019,8 @@ static u16 check_multi_ap(struct hostapd
  }
  
  
@@ -384,7 +384,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 &&
-@@ -5479,7 +5482,7 @@ static int __check_assoc_ies(struct host
+@@ -5485,7 +5488,7 @@ static int __check_assoc_ies(struct host
                               elems->ext_capab_len);
        if (resp != WLAN_STATUS_SUCCESS)
                goto out;
@@ -393,7 +393,7 @@ Hotfix-by: Sebastian Gottschall https://github.com/mirror/dd-wrt/commit/0c3001a6
        if (resp != WLAN_STATUS_SUCCESS)
                goto out;
  
-@@ -7920,6 +7923,11 @@ static void handle_beacon(struct hostapd
+@@ -7934,6 +7937,11 @@ static void handle_beacon(struct hostapd
                                      0);
  
        ap_list_process_beacon(hapd->iface, mgmt, &elems, fi);
@@ -418,7 +418,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
-@@ -4537,7 +4537,7 @@ struct wpa_driver_ops {
+@@ -4548,7 +4548,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,
@@ -429,7 +429,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
-@@ -9328,25 +9328,15 @@ int nl80211_has_ifidx(struct wpa_driver_
+@@ -9355,25 +9355,15 @@ int nl80211_has_ifidx(struct wpa_driver_
  
  
  static int i802_set_wds_sta(void *priv, const u8 *addr, int aid, int val,
index e3ad5ee40c536fdeb76c418b3a43262ec3bfe749..1fccc9e237a7f2462800a122aa428f6ce59a887f 100644 (file)
@@ -1,6 +1,6 @@
 --- a/src/ap/sta_info.c
 +++ b/src/ap/sta_info.c
-@@ -2172,3 +2172,22 @@ void ap_sta_free_sta_profile(struct mld_
+@@ -2187,3 +2187,22 @@ void ap_sta_free_sta_profile(struct mld_
        }
  }
  #endif /* CONFIG_IEEE80211BE */