hostapd: update to 2022-07-29
authorDavid Bauer <mail@david-bauer.net>
Fri, 19 Aug 2022 00:17:22 +0000 (02:17 +0200)
committerDavid Bauer <mail@david-bauer.net>
Mon, 19 Sep 2022 23:15:36 +0000 (01:15 +0200)
b704dc72e tests: sigma_dut and updated ConfResult value for Configurator failures
89de431f2 DPP: Add config response status value to DPP-CONF-SENT
10104915a tests: sigma_dut and DPP PB session overlap
80d5e264c Enhance QCA vendor roam event to indicate MLO links after reassociation
662249306 Update copyright notices for the QCA vendor definitions
8adcdd659 tests: Temporary workaround for dpp_chirp_ap_5g
ddcd15c2d tests: Fix fuzzing/sae build
7fa67861a tests: Fix p2p_channel_avoid3
ee3567d65 tests: Add more time for scan/connection
1d08b238c nl80211: Allow more time for the initial scan with 6 GHz
ac9e6a2ab tests: Allow 6 GHz opclasses in MBO checks
faf9c04cb Remove a host of unnecessary OPENSSL_IS_BORINGSSL ifdefs
b9cd5a82f Always process pending QCA_NL80211_VENDOR_SUBCMD_KEY_MGMT_ROAM_AUTH data
ef4cd8e33 QoS: Use common classifier_mask for ipv4/ipv6
93be02592 Add fixed FDD mode to qca_btc_chain_mode QCA vendor attribute
e7cbfa1c1 tests: sigma_dut and DPP Enrollee unsupported curves
5565fbee2 DPP: Check Enrollee supported curves when building Config Response
ceae05cec tests: sigma_dut and DPP MUDURL setting for hostapd
4cfb484e9 DPP: Allow dpp_controller_start without arguments in CLIs
c97000933 Fix ifdef condition for imsi_privacy_cert
2a9a61d6c tests: SAE with extended key AKM
e35f6ed1d tests: More detailed report on SAE PMKSA caching error case
f70db167a SAE: Derive a variable length PMK with the new AKM suites
91010e6f6 SAE: Indicate AKM suite selector in commit for new AKM suites
e81ec0962 SAE: Use H2E unconditionally with the new AKM suites
f8eed2e8b SAE: Store PMK length and AKM in SAE data
9dc4e9d13 SAE: EAPOL-Key and key/MIC length information for the new AKM suites
a32ef3cfb SAE: Driver capability flags for the new SAE AKM suites
91df8c9c6 SAE: Internal WPA_KEY_MGMT_* defines for extended key AKMs
5c8a714b1 SAE: Use wpa_key_mgmt_sae() helper
5456b0f26 Define new RSN AKM suite selector values
def33101c DPP: Clear push button announcement state on wpa_supplicant FLUSH
35587fa8f tests: DPP Controller/Relay with need to discover Controller
d22dfe918 DPP: Event message for indicating when Relay would need a Controller
ca7892e98 tests: DPP Relay and adding/removing connection to a Controller
bfe3cfc38 DPP: Allow Relay connections to Controllers to be added and removed
808834b18 Add a comparison function for hostapd_ip_addr
f7763880b DPP: Advertise Configurator connectivity on Relay automatically
ff7cc1d49 tests: DPP Relay and dynamic Controller addition
ca682f80a DPP: Dynamic Controller initiated connection on Relay
d2388bcca DPP: Strict validation of PKEX peer bootstrapping key during auth
a7b8cef8b DPP3: Fix push button boostrapping key passing through PKEX
69d7c8e6b DPP: Add peer=id entry for PKEX-over-TCP case
b607d2723 tests: sigma_dut and DPP PB Configurator in wpa_supplicant
1ff9251a8 DPP3: Push button Configurator in wpa_supplicant
b94e46bc7 tests: PB Configurator in wpa_supplicant
ca4e82cbf tests: sigma_dut DPP/PKEX initiator as Configurator over TCP and Wi-Fi
e9137950f DPP: Recognize own PKEX Exchange Request if it ends up being received
692956446 DPP: Note PKEX code/identifier deletion in debug log
dfa9183b1 tests: DPP reconfig after Controller-initiated operation through Relay
ae4a3a6f6 DPP: Add DPP-CONF-REQ-RX event for Controller
17216b524 tests: sigma_dut DPP/PKEX initiator as Configurator (TCP) through Relay
fb2937b85 DPP: Allow Controller to initiate PKEX through Relay
15af83cf1 DPP: Delete PKEX code and identifier on success completion of PKEX
d86ed5b72 tests: Allow DPP_PKEX_REMOVE success in dpp_pkex_hostapd_errors
0a4f391b1 tests: sigma_dut and DPP Connector Privacy
479e412a6 DPP3: Default value for dpp_connector_privacy
7d12871ba test: DPP Private Peer Introduction protocol
148de3e0d DPP3: Private Peer Introduction protocol
786ea402b HPKE base mode with single-shot API
f0273bc81 OpenSSL: Remove a forgotten debug print
f2bb0839f test: DPP 3rd party config information
68209ddbe DPP: Allow 3rd party information to be added into config object
0e2217c95 DPP: Allow 3rd party information to be added into config request obj
3d82fbe05 Add QCA vendor subcommand and attributes for SCS rule configuration
16b62ddfa QCA vendor attribute for DBAM configuration
004b1ff47 tests: DPP Controller initiating through Relay
451ede2c3 DPP: Allow AP/Relay to be configured to listed for new TCP connections
248654d36 tests: sigma_dut DPP PB test cases
697b7d7ec tests: DPP push button
7bbe85987 DPP3: Allow external configuration to be specified on AP for PB
8db786a43 DPP3: Testing functionality for push button announcements
37bccfcab DPP3: Push button bootstrap mechanism
a0054fe7c Add AP and STA specific P802.11az security capabilities (vendor command)
159e63613 QCA vendor command for CoAP offload processing
3b7bb17f6 Add QCA vendor attribute for TIM beacon statistics
09a281e52 Add QCA vendor interface for PASN offload to userspace
809fb96fa Add a vendor attribute to configure concurrency policy for AP interface
a5754f531 Rename QCA_NL80211_VENDOR_SUBCMD_CONCURRENT_MULTI_STA_POLICY
085a3fc76 EHT: Add 320 channel width support
bafe35df0 Move CHANWIDTH_* definitions from ieee80211_defs.h to defs.h
92f549901 tests: Remove the 80+80 vs. 160 part from wpa2_ocv_ap_vht160_mismatch
c580c2aec tests: Make OCV negative test error cases more robust
3c2ba98ad Add QCA vendor event to indicate driver recovery after internal failures
6b461f68c Set current_ssid before changing state to ASSOCIATING
8dd826741 QCA vendor attribute to configure direct data path for audio traffic
504be2f9d QCA vendor command support to get WLAN radio combinations
d5905dbc8 OCV: Check the Frequency Segment 1 Channel Number only on 80+80 MHz

Signed-off-by: David Bauer <mail@david-bauer.net>
42 files changed:
package/network/services/hostapd/Makefile
package/network/services/hostapd/patches/001-wolfssl-init-RNG-with-ECC-key.patch
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/022-hostapd-fix-use-of-uninitialized-stack-variables.patch
package/network/services/hostapd/patches/030-driver_nl80211-rewrite-neigh-code-to-not-depend-on-l.patch
package/network/services/hostapd/patches/040-mesh-allow-processing-authentication-frames-in-block.patch
package/network/services/hostapd/patches/050-build_fix.patch
package/network/services/hostapd/patches/200-multicall.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/340-reload_freq_change.patch
package/network/services/hostapd/patches/341-mesh-ctrl-iface-channel-switch.patch
package/network/services/hostapd/patches/350-nl80211_del_beacon_bss.patch
package/network/services/hostapd/patches/360-ctrl_iface_reload.patch
package/network/services/hostapd/patches/370-ap_sta_support.patch
package/network/services/hostapd/patches/380-disable_ctrl_iface_mib.patch
package/network/services/hostapd/patches/390-wpa_ie_cap_workaround.patch
package/network/services/hostapd/patches/400-wps_single_auth_enc_type.patch
package/network/services/hostapd/patches/430-hostapd_cli_ifdef.patch
package/network/services/hostapd/patches/460-wpa_supplicant-add-new-config-params-to-be-used-with.patch
package/network/services/hostapd/patches/461-driver_nl80211-use-new-parameters-during-ibss-join.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/500-lto-jobserver-support.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/700-wifi-reload.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/750-qos_map_set_without_interworking.patch
package/network/services/hostapd/patches/751-qos_map_ignore_when_unsupported.patch
package/network/services/hostapd/patches/800-acs-don-t-select-indoor-channel-on-outdoor-operation.patch
package/network/services/hostapd/patches/990-ctrl-make-WNM_AP-functions-dependant-on-CONFIG_AP.patch
package/network/services/hostapd/patches/991-fix-compile.patch [deleted file]

index c4aa6d04f3f03d9b9c9c85927da72aa6dbf9872e..e4794968790a90b94b238c0b416424c611bad8b1 100644 (file)
@@ -9,9 +9,9 @@ PKG_RELEASE:=$(AUTORELEASE)
 
 PKG_SOURCE_URL:=http://w1.fi/hostap.git
 PKG_SOURCE_PROTO:=git
-PKG_SOURCE_DATE:=2022-06-02
-PKG_SOURCE_VERSION:=4383528e01955d995d3b3db201e4c0f9840e8236
-PKG_MIRROR_HASH:=1b533287661d4877d56aca8a5b2a53d84d2a90eebe246d8d9b3adf943da7f0a1
+PKG_SOURCE_DATE:=2022-07-29
+PKG_SOURCE_VERSION:=b704dc72ef824dfdd96674b90179b274d1d38105
+PKG_MIRROR_HASH:=6c9dd359ef5a4595b6576e07928566d6864957c4af6466d641d6c3f7717f4689
 
 PKG_MAINTAINER:=Felix Fietkau <nbd@nbd.name>
 PKG_LICENSE:=BSD-3-Clause
index 994aa306264caaf17c29d383d01d1fbaa311181f..269dcaac75ce3edb971e4a4cd93ed1c5cd1096a9 100644 (file)
@@ -16,7 +16,7 @@ Signed-off-by: David Bauer <mail@david-bauer.net>
 
 --- a/src/crypto/crypto_wolfssl.c
 +++ b/src/crypto/crypto_wolfssl.c
-@@ -1307,6 +1307,7 @@ int ecc_projective_add_point(ecc_point *
+@@ -1340,6 +1340,7 @@ int ecc_projective_add_point(ecc_point *
  
  struct crypto_ec {
        ecc_key key;
@@ -24,7 +24,7 @@ Signed-off-by: David Bauer <mail@david-bauer.net>
        mp_int a;
        mp_int prime;
        mp_int order;
-@@ -1361,6 +1362,8 @@ struct crypto_ec * crypto_ec_init(int gr
+@@ -1394,6 +1395,8 @@ struct crypto_ec * crypto_ec_init(int gr
                return NULL;
  
        if (wc_ecc_init(&e->key) != 0 ||
@@ -33,7 +33,7 @@ Signed-off-by: David Bauer <mail@david-bauer.net>
            wc_ecc_set_curve(&e->key, 0, curve_id) != 0 ||
            mp_init(&e->a) != MP_OKAY ||
            mp_init(&e->prime) != MP_OKAY ||
-@@ -1392,6 +1395,7 @@ void crypto_ec_deinit(struct crypto_ec*
+@@ -1425,6 +1428,7 @@ void crypto_ec_deinit(struct crypto_ec*
        mp_clear(&e->order);
        mp_clear(&e->prime);
        mp_clear(&e->a);
index 16d24d1000b4d5c428585c37480250f8c66c16ef..6bc48abfb9508ebc444ee318df8f239529f0f428 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
-@@ -2409,7 +2409,7 @@ static int drv_supports_vht(struct wpa_s
+@@ -2436,7 +2436,7 @@ static int drv_supports_vht(struct wpa_s
  }
  
  
@@ -23,7 +23,7 @@ Signed-off-by: Peter Oh <peter.oh@bowerswilkins.com>
  {
        int i;
  
-@@ -2418,7 +2418,10 @@ static bool ibss_mesh_is_80mhz_avail(int
+@@ -2445,7 +2445,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;
        }
  
-@@ -2447,6 +2450,8 @@ void ibss_mesh_setup_freq(struct wpa_sup
+@@ -2474,6 +2477,8 @@ void ibss_mesh_setup_freq(struct wpa_sup
        int chwidth, seg0, seg1;
        u32 vht_caps = 0;
        bool is_24ghz, is_6ghz;
@@ -44,7 +44,7 @@ Signed-off-by: Peter Oh <peter.oh@bowerswilkins.com>
  
        freq->freq = ssid->frequency;
  
-@@ -2543,8 +2548,11 @@ void ibss_mesh_setup_freq(struct wpa_sup
+@@ -2570,8 +2575,11 @@ void ibss_mesh_setup_freq(struct wpa_sup
                return;
  
        /* Check primary channel flags */
@@ -57,7 +57,7 @@ Signed-off-by: Peter Oh <peter.oh@bowerswilkins.com>
  
        freq->channel = pri_chan->chan;
  
-@@ -2577,8 +2585,11 @@ void ibss_mesh_setup_freq(struct wpa_sup
+@@ -2604,8 +2612,11 @@ void ibss_mesh_setup_freq(struct wpa_sup
                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))
-@@ -2667,7 +2678,7 @@ skip_to_6ghz:
+@@ -2694,7 +2705,7 @@ skip_to_6ghz:
                return;
  
        /* Back to HT configuration if channel not usable */
@@ -78,8 +78,8 @@ Signed-off-by: Peter Oh <peter.oh@bowerswilkins.com>
 +      if (!ibss_mesh_is_80mhz_avail(channel, mode, dfs_enabled))
                return;
  
-       chwidth = CHANWIDTH_80MHZ;
-@@ -2681,7 +2692,7 @@ skip_to_6ghz:
+       chwidth = CONF_OPER_CHWIDTH_80MHZ;
+@@ -2708,7 +2719,7 @@ skip_to_6ghz:
                 * above; check the remaining four 20 MHz channels for the total
                 * of 160 MHz bandwidth.
                 */
@@ -88,7 +88,7 @@ Signed-off-by: Peter Oh <peter.oh@bowerswilkins.com>
                        return;
  
                for (j = 0; j < ARRAY_SIZE(bw160); j++) {
-@@ -2711,10 +2722,12 @@ skip_to_6ghz:
+@@ -2738,10 +2749,12 @@ skip_to_6ghz:
                                if (!chan)
                                        continue;
  
@@ -103,4 +103,4 @@ Signed-off-by: Peter Oh <peter.oh@bowerswilkins.com>
 +                                              continue;
  
                                /* Found a suitable second segment for 80+80 */
-                               chwidth = CHANWIDTH_80P80MHZ;
+                               chwidth = CONF_OPER_CHWIDTH_80P80MHZ;
index 1faeacf76604a3727f6c5af749af60daf0342195..32a447914ced9a76fb7d8f386e8486d8de141f60 100644 (file)
@@ -28,8 +28,8 @@ Signed-off-by: Markus Theil <markus.theil@tu-ilmenau.de>
 +#include "crypto/crypto.h"
  
  
- static int dfs_get_used_n_chans(struct hostapd_iface *iface, int *seg1)
-@@ -483,9 +484,14 @@ dfs_get_valid_channel(struct hostapd_ifa
+ enum dfs_channel_type {
+@@ -515,9 +516,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;
-@@ -505,8 +511,20 @@ dfs_get_valid_channel(struct hostapd_ifa
+@@ -537,8 +543,20 @@ dfs_get_valid_channel(struct hostapd_ifa
        if (num_available_chandefs == 0)
                return NULL;
  
@@ -64,11 +64,11 @@ Signed-off-by: Markus Theil <markus.theil@tu-ilmenau.de>
                return NULL;
 +
        chan_idx = _rand % num_available_chandefs;
-       dfs_find_channel(iface, &chan, chan_idx, skip_radar);
+       dfs_find_channel(iface, &chan, chan_idx, type);
        if (!chan) {
 --- a/src/drivers/driver_nl80211.c
 +++ b/src/drivers/driver_nl80211.c
-@@ -9895,6 +9895,10 @@ static int nl80211_switch_channel(void *
+@@ -9948,6 +9948,10 @@ static int nl80211_switch_channel(void *
        if (ret)
                goto error;
  
index ac02ec5ab7252b3bede302f592d7bcc33fa8db99..80b23bdfc964c3f614d14cda7deac78f2056ec9a 100644 (file)
@@ -1,6 +1,6 @@
 --- a/src/ap/ieee802_11.c
 +++ b/src/ap/ieee802_11.c
-@@ -4944,6 +4944,13 @@ static int add_associated_sta(struct hos
+@@ -4963,6 +4963,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.
@@ -14,7 +14,7 @@
         */
        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)",
-@@ -4957,7 +4964,8 @@ static int add_associated_sta(struct hos
+@@ -4976,7 +4983,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 c7da33f029058a06136e0526b8e1ef48b933c9b6..25801da3349db90302ec481878586ecc2f105dd8 100644 (file)
@@ -14,7 +14,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
 
 --- a/src/ap/hostapd.c
 +++ b/src/ap/hostapd.c
-@@ -3431,7 +3431,7 @@ static int hostapd_change_config_freq(st
+@@ -3453,7 +3453,7 @@ static int hostapd_change_config_freq(st
                                      struct hostapd_freq_params *old_params)
  {
        int channel;
index ade0b1131105e74669a32216df7c0a19f3e7b563..988fbbc6f67b597b67f65f6c0d4427778e0aef7b 100644 (file)
@@ -20,7 +20,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  #include <linux/rtnetlink.h>
  #include <netpacket/packet.h>
  #include <linux/errqueue.h>
-@@ -5300,26 +5297,29 @@ fail:
+@@ -5344,26 +5341,29 @@ fail:
  
  static void rtnl_neigh_delete_fdb_entry(struct i802_bss *bss, const u8 *addr)
  {
@@ -64,7 +64,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
        if (err < 0) {
                wpa_printf(MSG_DEBUG, "nl80211: bridge FDB entry delete for "
                           MACSTR " ifindex=%d failed: %s", MAC2STR(addr),
-@@ -5329,9 +5329,8 @@ static void rtnl_neigh_delete_fdb_entry(
+@@ -5373,9 +5373,8 @@ static void rtnl_neigh_delete_fdb_entry(
                           MACSTR, MAC2STR(addr));
        }
  
@@ -76,7 +76,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  }
  
  
-@@ -7714,7 +7713,6 @@ static void *i802_init(struct hostapd_da
+@@ -7763,7 +7762,6 @@ static void *i802_init(struct hostapd_da
            (params->num_bridge == 0 || !params->bridge[0]))
                add_ifidx(drv, br_ifindex, drv->ifindex);
  
@@ -84,7 +84,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
        if (bss->added_if_into_bridge || bss->already_in_bridge) {
                int err;
  
-@@ -7731,7 +7729,6 @@ static void *i802_init(struct hostapd_da
+@@ -7780,7 +7778,6 @@ static void *i802_init(struct hostapd_da
                        goto failed;
                }
        }
@@ -92,7 +92,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  
        if (drv->capa.flags2 & WPA_DRIVER_FLAGS2_CONTROL_PORT_RX) {
                wpa_printf(MSG_DEBUG,
-@@ -10678,13 +10675,14 @@ static int wpa_driver_br_add_ip_neigh(vo
+@@ -10813,13 +10810,14 @@ static int wpa_driver_br_add_ip_neigh(vo
                                      const u8 *ipaddr, int prefixlen,
                                      const u8 *addr)
  {
@@ -112,7 +112,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
        int res;
  
        if (!ipaddr || prefixlen == 0 || !addr)
-@@ -10703,85 +10701,66 @@ static int wpa_driver_br_add_ip_neigh(vo
+@@ -10838,85 +10836,66 @@ static int wpa_driver_br_add_ip_neigh(vo
        }
  
        if (version == 4) {
@@ -220,7 +220,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
                addrsize = 16;
        } else {
                return -EINVAL;
-@@ -10799,41 +10778,30 @@ static int wpa_driver_br_delete_ip_neigh
+@@ -10934,41 +10913,30 @@ static int wpa_driver_br_delete_ip_neigh
                return -1;
        }
  
index 6d9fd81acf858048898026783ea2ac7c2a843cee..6b34cd4350b273973152e8b2e03d2bc5fd30169e 100644 (file)
@@ -16,7 +16,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
 
 --- a/src/ap/ieee802_11.c
 +++ b/src/ap/ieee802_11.c
-@@ -3761,15 +3761,6 @@ static void handle_auth(struct hostapd_d
+@@ -3781,15 +3781,6 @@ static void handle_auth(struct hostapd_d
                                       seq_ctrl);
                        return;
                }
index 2652a8331610e88e9fd72eb9d2b79fc0389b84cb..c9268f59e3d0a38cf354f6de42d4c7e0216ac161 100644 (file)
@@ -1,6 +1,6 @@
 --- a/hostapd/Makefile
 +++ b/hostapd/Makefile
-@@ -323,6 +323,7 @@ ifdef CONFIG_FILS
+@@ -324,6 +324,7 @@ ifdef CONFIG_FILS
  CFLAGS += -DCONFIG_FILS
  OBJS += ../src/ap/fils_hlp.o
  NEED_SHA384=y
@@ -10,7 +10,7 @@
  CFLAGS += -DCONFIG_FILS_SK_PFS
 --- a/wpa_supplicant/Makefile
 +++ b/wpa_supplicant/Makefile
-@@ -312,6 +312,7 @@ endif
+@@ -320,6 +320,7 @@ endif
  ifdef CONFIG_FILS
  CFLAGS += -DCONFIG_FILS
  NEED_SHA384=y
index ad82e020f61158b70b3b7839d731dce167a1b8c8..576c671155453ddd6e19812df92cc7478409deeb 100644 (file)
@@ -18,7 +18,7 @@
  OBJS += ../src/ap/vlan_init.o
  OBJS += ../src/ap/vlan_ifconfig.o
  OBJS += ../src/ap/vlan.o
-@@ -350,10 +352,14 @@ CFLAGS += -DCONFIG_MBO
+@@ -357,10 +359,14 @@ CFLAGS += -DCONFIG_MBO
  OBJS += ../src/ap/mbo_ap.o
  endif
  
@@ -36,7 +36,7 @@
  LIBS += $(DRV_AP_LIBS)
  
  ifdef CONFIG_L2_PACKET
-@@ -1281,6 +1287,12 @@ install: $(addprefix $(DESTDIR)$(BINDIR)
+@@ -1291,6 +1297,12 @@ install: $(addprefix $(DESTDIR)$(BINDIR)
  _OBJS_VAR := OBJS
  include ../src/objs.mk
  
@@ -49,7 +49,7 @@
  hostapd: $(OBJS)
        $(Q)$(CC) $(LDFLAGS) -o hostapd $(OBJS) $(LIBS)
        @$(E) "  LD " $@
-@@ -1355,6 +1367,12 @@ include ../src/objs.mk
+@@ -1365,6 +1377,12 @@ include ../src/objs.mk
  _OBJS_VAR := SOBJS
  include ../src/objs.mk
  
        @$(E) "  LD " $@
 --- a/wpa_supplicant/Makefile
 +++ b/wpa_supplicant/Makefile
-@@ -17,6 +17,7 @@ endif
+@@ -10,6 +10,7 @@ ALL += dbus/fi.w1.wpa_supplicant1.servic
  EXTRA_TARGETS=dynamic_eap_methods
  
  CONFIG_FILE=.config
 +-include $(if $(MULTICALL),../hostapd/.config)
  include ../src/build.rules
  
- ifdef LIBS
-@@ -363,7 +364,9 @@ endif
+ ifdef CONFIG_BUILD_WPA_CLIENT_SO
+@@ -371,7 +372,9 @@ endif
  ifdef CONFIG_IBSS_RSN
  NEED_RSN_AUTHENTICATOR=y
  CFLAGS += -DCONFIG_IBSS_RSN
@@ -82,7 +82,7 @@
  OBJS += ibss_rsn.o
  endif
  
-@@ -900,6 +903,10 @@ ifdef CONFIG_DYNAMIC_EAP_METHODS
+@@ -912,6 +915,10 @@ ifdef CONFIG_DYNAMIC_EAP_METHODS
  CFLAGS += -DCONFIG_DYNAMIC_EAP_METHODS
  LIBS += -ldl -rdynamic
  endif
@@ -93,7 +93,7 @@
  endif
  
  ifdef CONFIG_AP
-@@ -907,9 +914,11 @@ NEED_EAP_COMMON=y
+@@ -919,9 +926,11 @@ NEED_EAP_COMMON=y
  NEED_RSN_AUTHENTICATOR=y
  CFLAGS += -DCONFIG_AP
  OBJS += ap.o
  OBJS += ../src/ap/hostapd.o
  OBJS += ../src/ap/wpa_auth_glue.o
  OBJS += ../src/ap/utils.o
-@@ -989,6 +998,12 @@ endif
+@@ -1008,6 +1017,12 @@ endif
  ifdef CONFIG_HS20
  OBJS += ../src/ap/hs20.o
  endif
  endif
  
  ifdef CONFIG_MBO
-@@ -997,7 +1012,9 @@ CFLAGS += -DCONFIG_MBO
+@@ -1016,7 +1031,9 @@ CFLAGS += -DCONFIG_MBO
  endif
  
  ifdef NEED_RSN_AUTHENTICATOR
  NEED_AES_WRAP=y
  OBJS += ../src/ap/wpa_auth.o
  OBJS += ../src/ap/wpa_auth_ie.o
-@@ -1891,6 +1908,12 @@ wpa_priv: $(BCHECK) $(OBJS_priv)
+@@ -1920,6 +1937,12 @@ wpa_priv: $(BCHECK) $(OBJS_priv)
  
  _OBJS_VAR := OBJS
  include ../src/objs.mk
  wpa_supplicant: $(BCHECK) $(OBJS) $(EXTRA_progs)
        $(Q)$(LDO) $(LDFLAGS) -o wpa_supplicant $(OBJS) $(LIBS) $(EXTRALIBS)
        @$(E) "  LD " $@
-@@ -2023,6 +2046,12 @@ eap_gpsk.so: $(SRC_EAP_GPSK)
+@@ -2052,6 +2075,12 @@ eap_gpsk.so: $(SRC_EAP_GPSK)
        $(Q)sed -e 's|\@BINDIR\@|$(BINDIR)|g' $< >$@
        @$(E) "  sed" $<
  
  wpa_cli.exe: wpa_cli
 --- a/src/drivers/driver.h
 +++ b/src/drivers/driver.h
-@@ -6033,8 +6033,8 @@ union wpa_event_data {
+@@ -6171,8 +6171,8 @@ union wpa_event_data {
   * Driver wrapper code should call this function whenever an event is received
   * from the driver.
   */
  
  /**
   * wpa_supplicant_event_global - Report a driver event for wpa_supplicant
-@@ -6046,7 +6046,7 @@ void wpa_supplicant_event(void *ctx, enu
+@@ -6184,7 +6184,7 @@ void wpa_supplicant_event(void *ctx, enu
   * Same as wpa_supplicant_event(), but we search for the interface in
   * wpa_global.
   */
  /*
 --- a/src/ap/drv_callbacks.c
 +++ b/src/ap/drv_callbacks.c
-@@ -1842,8 +1842,8 @@ err:
+@@ -1872,8 +1872,8 @@ err:
  #endif /* CONFIG_OWE */
  
  
  {
        struct hostapd_data *hapd = ctx;
  #ifndef CONFIG_NO_STDOUT_DEBUG
-@@ -2088,7 +2088,7 @@ void wpa_supplicant_event(void *ctx, enu
+@@ -2145,7 +2145,7 @@ void wpa_supplicant_event(void *ctx, enu
  }
  
  
                                 union wpa_event_data *data)
  {
        struct wpa_priv_global *global = ctx;
-@@ -1215,6 +1215,8 @@ int main(int argc, char *argv[])
+@@ -1216,6 +1216,8 @@ int main(int argc, char *argv[])
        if (os_program_init())
                return -1;
  
        os_memset(&global, 0, sizeof(global));
 --- a/wpa_supplicant/events.c
 +++ b/wpa_supplicant/events.c
-@@ -4891,8 +4891,8 @@ static void wpas_event_unprot_beacon(str
+@@ -4953,8 +4953,8 @@ static void wpas_event_unprot_beacon(str
  }
  
  
  {
        struct wpa_supplicant *wpa_s = ctx;
        int resched;
-@@ -5745,7 +5745,7 @@ void wpa_supplicant_event(void *ctx, enu
+@@ -5813,7 +5813,7 @@ void wpa_supplicant_event(void *ctx, enu
  }
  
  
        struct wpa_supplicant *wpa_s;
 --- a/wpa_supplicant/wpa_supplicant.c
 +++ b/wpa_supplicant/wpa_supplicant.c
-@@ -7043,7 +7043,6 @@ struct wpa_interface * wpa_supplicant_ma
+@@ -7087,7 +7087,6 @@ struct wpa_interface * wpa_supplicant_ma
        return NULL;
  }
  
  /**
   * wpa_supplicant_match_existing - Match existing interfaces
   * @global: Pointer to global data from wpa_supplicant_init()
-@@ -7078,6 +7077,11 @@ static int wpa_supplicant_match_existing
+@@ -7122,6 +7121,11 @@ static int wpa_supplicant_match_existing
  
  #endif /* CONFIG_MATCH_IFACE */
  
  
  /**
   * wpa_supplicant_add_iface - Add a new network interface
-@@ -7334,6 +7338,8 @@ struct wpa_global * wpa_supplicant_init(
+@@ -7378,6 +7382,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 */
                wpa_debug_open_file(params->wpa_debug_file_path);
 --- a/hostapd/main.c
 +++ b/hostapd/main.c
-@@ -590,6 +590,11 @@ fail:
+@@ -591,6 +591,11 @@ fail:
        return -1;
  }
  
  
  #ifdef CONFIG_WPS
  static int gen_uuid(const char *txt_addr)
-@@ -683,6 +688,8 @@ int main(int argc, char *argv[])
+@@ -684,6 +689,8 @@ int main(int argc, char *argv[])
                return -1;
  #endif /* CONFIG_DPP */
  
 +      wpa_supplicant_event = hostapd_wpa_event;
 +      wpa_supplicant_event_global = hostapd_wpa_event_global;
        for (;;) {
-               c = getopt(argc, argv, "b:Bde:f:hi:KP:sSTtu:vg:G:");
+               c = getopt(argc, argv, "b:Bde:f:hi:KP:sSTtu:vg:G:q");
                if (c < 0)
 --- a/src/drivers/drivers.c
 +++ b/src/drivers/drivers.c
  {
 --- a/wpa_supplicant/eapol_test.c
 +++ b/wpa_supplicant/eapol_test.c
-@@ -30,7 +30,12 @@
+@@ -31,7 +31,12 @@
  #include "ctrl_iface.h"
  #include "pcsc_funcs.h"
  #include "wpas_glue.h"
  
  const struct wpa_driver_ops *const wpa_drivers[] = { NULL };
  
-@@ -1291,6 +1296,10 @@ static void usage(void)
+@@ -1303,6 +1308,10 @@ static void usage(void)
               "option several times.\n");
  }
  
  
  int main(int argc, char *argv[])
  {
-@@ -1311,6 +1320,8 @@ int main(int argc, char *argv[])
+@@ -1323,6 +1332,8 @@ int main(int argc, char *argv[])
        if (os_program_init())
                return -1;
  
index 01a33d0d035b1880244c26b3a2f1d6e93ff32eb6..a0e00c4d564600a12a69feaffc7e36dfb5ca6d44 100644 (file)
@@ -1,6 +1,6 @@
 --- a/hostapd/config_file.c
 +++ b/hostapd/config_file.c
-@@ -3474,6 +3474,10 @@ static int hostapd_config_fill(struct ho
+@@ -3439,6 +3439,10 @@ static int hostapd_config_fill(struct ho
                if (bss->ocv && !bss->ieee80211w)
                        bss->ieee80211w = 1;
  #endif /* CONFIG_OCV */
@@ -13,7 +13,7 @@
        } else if (os_strcmp(buf, "ht_capab") == 0) {
 --- a/src/ap/ap_config.h
 +++ b/src/ap/ap_config.h
-@@ -1014,6 +1014,8 @@ struct hostapd_config {
+@@ -1043,6 +1043,8 @@ struct hostapd_config {
  
        int ht_op_mode_fixed;
        u16 ht_capab;
index e682efb543ee3055f862f46a3782c56fa8298cf4..998540198ec1a1a1c568a2efa8aa51dbdd0abc09 100644 (file)
@@ -1,6 +1,6 @@
 --- a/wpa_supplicant/config.c
 +++ b/wpa_supplicant/config.c
-@@ -2532,6 +2532,7 @@ static const struct parse_data ssid_fiel
+@@ -2555,6 +2555,7 @@ static const struct parse_data ssid_fiel
  #else /* CONFIG_MESH */
        { INT_RANGE(mode, 0, 4) },
  #endif /* CONFIG_MESH */
@@ -10,7 +10,7 @@
        { STR(id_str) },
 --- a/wpa_supplicant/config_file.c
 +++ b/wpa_supplicant/config_file.c
-@@ -769,6 +769,7 @@ static void wpa_config_write_network(FIL
+@@ -766,6 +766,7 @@ static void wpa_config_write_network(FIL
  #endif /* IEEE8021X_EAPOL */
        INT(mode);
        INT(no_auto_peer);
@@ -20,7 +20,7 @@
        INT(enable_edmg);
 --- a/wpa_supplicant/mesh.c
 +++ b/wpa_supplicant/mesh.c
-@@ -505,6 +505,8 @@ static int wpa_supplicant_mesh_init(stru
+@@ -506,6 +506,8 @@ static int wpa_supplicant_mesh_init(stru
                           frequency);
                goto out_free;
        }
@@ -31,7 +31,7 @@
                /*
 --- a/wpa_supplicant/wpa_supplicant.c
 +++ b/wpa_supplicant/wpa_supplicant.c
-@@ -2436,7 +2436,7 @@ void ibss_mesh_setup_freq(struct wpa_sup
+@@ -2463,7 +2463,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;
@@ -40,7 +40,7 @@
                           184, 192 };
        int bw80[] = { 5180, 5260, 5500, 5580, 5660, 5745, 5955,
                       6035, 6115, 6195, 6275, 6355, 6435, 6515,
-@@ -2444,7 +2444,7 @@ void ibss_mesh_setup_freq(struct wpa_sup
+@@ -2471,7 +2471,7 @@ void ibss_mesh_setup_freq(struct wpa_sup
        int bw160[] = { 5955, 6115, 6275, 6435, 6595, 6755, 6915 };
        struct hostapd_channel_data *pri_chan = NULL, *sec_chan = NULL;
        u8 channel;
@@ -49,7 +49,7 @@
        unsigned int j, k;
        struct hostapd_freq_params vht_freq;
        int chwidth, seg0, seg1;
-@@ -2535,7 +2535,7 @@ void ibss_mesh_setup_freq(struct wpa_sup
+@@ -2562,7 +2562,7 @@ void ibss_mesh_setup_freq(struct wpa_sup
  #endif /* CONFIG_HE_OVERRIDES */
  
        /* Setup higher BW only for 5 GHz */
@@ -60,7 +60,7 @@
        for (chan_idx = 0; chan_idx < mode->num_channels; chan_idx++) {
 --- a/wpa_supplicant/config_ssid.h
 +++ b/wpa_supplicant/config_ssid.h
-@@ -974,6 +974,8 @@ struct wpa_ssid {
+@@ -981,6 +981,8 @@ struct wpa_ssid {
         */
        int no_auto_peer;
  
index b0c1cb83544b9bdac4a44f567c90f11572373525..2c2541947c35a651e29f867901196b524ddabe2b 100644 (file)
@@ -1,6 +1,6 @@
 --- a/wpa_supplicant/wpa_supplicant.c
 +++ b/wpa_supplicant/wpa_supplicant.c
-@@ -5377,7 +5377,7 @@ wpa_supplicant_alloc(struct wpa_supplica
+@@ -5419,7 +5419,7 @@ wpa_supplicant_alloc(struct wpa_supplica
        if (wpa_s == NULL)
                return NULL;
        wpa_s->scan_req = INITIAL_SCAN_REQ;
index 37033c3035db8e8772c8288d2c6be94ffae45be3..8218a439ac5b17f8cd7c70806b504149bca71bfd 100644 (file)
@@ -1,8 +1,8 @@
 --- a/src/drivers/driver_nl80211.c
 +++ b/src/drivers/driver_nl80211.c
-@@ -4986,7 +4986,7 @@ static int nl80211_set_channel(struct i8
-                  freq->freq, freq->ht_enabled, freq->vht_enabled, freq->he_enabled,
-                  freq->bandwidth, freq->center_freq1, freq->center_freq2);
+@@ -5022,7 +5022,7 @@ static int nl80211_set_channel(struct i8
+                  freq->he_enabled, freq->eht_enabled, freq->bandwidth,
+                  freq->center_freq1, freq->center_freq2);
  
 -      msg = nl80211_drv_msg(drv, 0, set_chan ? NL80211_CMD_SET_CHANNEL :
 +      msg = nl80211_bss_msg(bss, 0, set_chan ? NL80211_CMD_SET_CHANNEL :
index 89259f2f44ca0d7f27698d93a704aa27fec22811..b59107463477b5b313dc37eba28cf69d96bfbc00 100644 (file)
@@ -1,6 +1,6 @@
 --- a/src/ap/hostapd.c
 +++ b/src/ap/hostapd.c
-@@ -115,6 +115,29 @@ static void hostapd_reload_bss(struct ho
+@@ -119,6 +119,29 @@ static void hostapd_reload_bss(struct ho
  #endif /* CONFIG_NO_RADIUS */
  
        ssid = &hapd->conf->ssid;
@@ -30,7 +30,7 @@
        if (!ssid->wpa_psk_set && ssid->wpa_psk && !ssid->wpa_psk->next &&
            ssid->wpa_passphrase_set && ssid->wpa_passphrase) {
                /*
-@@ -216,6 +238,7 @@ int hostapd_reload_config(struct hostapd
+@@ -220,6 +243,7 @@ int hostapd_reload_config(struct hostapd
        struct hostapd_data *hapd = iface->bss[0];
        struct hostapd_config *newconf, *oldconf;
        size_t j;
@@ -38,7 +38,7 @@
  
        if (iface->config_fname == NULL) {
                /* Only in-memory config in use - assume it has been updated */
-@@ -266,24 +289,20 @@ int hostapd_reload_config(struct hostapd
+@@ -270,24 +294,20 @@ int hostapd_reload_config(struct hostapd
        }
        iface->conf = newconf;
  
index b13dcb06737db614ecded30fae167298c05f5a3c..29a3799b5e7aec43fc0dc2fbbafbfa11681f5f96 100644 (file)
@@ -1,6 +1,6 @@
 --- a/wpa_supplicant/ap.c
 +++ b/wpa_supplicant/ap.c
-@@ -1611,15 +1611,35 @@ int ap_switch_channel(struct wpa_supplic
+@@ -1803,15 +1803,35 @@ int ap_switch_channel(struct wpa_supplic
  
  
  #ifdef CONFIG_CTRL_IFACE
index 8a2beb312ffb719ded309d8902f591e99a705b76..85298df7eab38a745ac17977d8225e963e3448ca 100644 (file)
@@ -1,6 +1,6 @@
 --- a/src/drivers/driver_nl80211.c
 +++ b/src/drivers/driver_nl80211.c
-@@ -2932,11 +2932,11 @@ static int wpa_driver_nl80211_del_beacon
+@@ -2938,11 +2938,11 @@ static int wpa_driver_nl80211_del_beacon
        struct wpa_driver_nl80211_data *drv = bss->drv;
  
        wpa_printf(MSG_DEBUG, "nl80211: Remove beacon (ifindex=%d)",
@@ -14,7 +14,7 @@
        return send_and_recv_msgs(drv, msg, NULL, NULL, NULL, NULL);
  }
  
-@@ -5650,7 +5650,7 @@ static void nl80211_teardown_ap(struct i
+@@ -5661,7 +5661,7 @@ static void nl80211_teardown_ap(struct i
                nl80211_mgmt_unsubscribe(bss, "AP teardown");
  
        nl80211_put_wiphy_data_ap(bss);
@@ -23,7 +23,7 @@
  }
  
  
-@@ -8104,8 +8104,6 @@ static int wpa_driver_nl80211_if_remove(
+@@ -8120,8 +8120,6 @@ static int wpa_driver_nl80211_if_remove(
        } else {
                wpa_printf(MSG_DEBUG, "nl80211: First BSS - reassign context");
                nl80211_teardown_ap(bss);
index 7f3aa91889494aaf07f323ca64f9a25628b276c2..7699541fd4634182b11a50fda1909a000fbb39be 100644 (file)
@@ -78,7 +78,7 @@
  
  #ifdef NEED_AP_MLME
  static int hostapd_ctrl_iface_sa_query(struct hostapd_data *hapd,
-@@ -3771,6 +3828,8 @@ static int hostapd_ctrl_iface_receive_pr
+@@ -3449,6 +3506,8 @@ static int hostapd_ctrl_iface_receive_pr
        } else if (os_strncmp(buf, "VENDOR ", 7) == 0) {
                reply_len = hostapd_ctrl_iface_vendor(hapd, buf + 7, reply,
                                                      reply_size);
@@ -89,7 +89,7 @@
  #ifdef RADIUS_SERVER
 --- a/src/ap/ctrl_iface_ap.c
 +++ b/src/ap/ctrl_iface_ap.c
-@@ -927,7 +927,13 @@ int hostapd_parse_csa_settings(const cha
+@@ -945,7 +945,13 @@ int hostapd_parse_csa_settings(const cha
  
  int hostapd_ctrl_iface_stop_ap(struct hostapd_data *hapd)
  {
index c81c841a43aa99de4ff0960cd13cd3a13fc3fe78..6faaffcf724b9eeb35830f0e4f6707008b516abb 100644 (file)
@@ -1,6 +1,6 @@
 --- a/wpa_supplicant/Makefile
 +++ b/wpa_supplicant/Makefile
-@@ -108,6 +108,8 @@ OBJS_c += ../src/utils/common.o
+@@ -115,6 +115,8 @@ OBJS_c += ../src/utils/common.o
  OBJS_c += ../src/common/cli.o
  OBJS += wmm_ac.o
  
@@ -30,7 +30,7 @@
        dst->flags = src->flags;
        os_memcpy(dst->bssid, src->bssid, ETH_ALEN);
        dst->freq = src->freq;
-@@ -294,6 +299,15 @@ static void wpa_bss_copy_res(struct wpa_
+@@ -295,6 +300,15 @@ static void wpa_bss_copy_res(struct wpa_
        dst->est_throughput = src->est_throughput;
        dst->snr = src->snr;
  
@@ -61,7 +61,7 @@
        /** Beacon interval in TUs (host byte order) */
 --- a/wpa_supplicant/main.c
 +++ b/wpa_supplicant/main.c
-@@ -34,7 +34,7 @@ static void usage(void)
+@@ -35,7 +35,7 @@ static void usage(void)
               "vW] [-P<pid file>] "
               "[-g<global ctrl>] \\\n"
               "        [-G<group>] \\\n"
@@ -70,7 +70,7 @@
               "[-p<driver_param>] \\\n"
               "        [-b<br_ifname>] [-e<entropy file>]"
  #ifdef CONFIG_DEBUG_FILE
-@@ -74,6 +74,7 @@ static void usage(void)
+@@ -75,6 +75,7 @@ static void usage(void)
               "  -g = global ctrl_interface\n"
               "  -G = global ctrl_interface group\n"
               "  -h = show this help text\n"
@@ -78,7 +78,7 @@
               "  -i = interface name\n"
               "  -I = additional configuration file\n"
               "  -K = include keys (passwords, etc.) in debug output\n"
-@@ -201,7 +202,7 @@ int main(int argc, char *argv[])
+@@ -202,7 +203,7 @@ int main(int argc, char *argv[])
  
        for (;;) {
                c = getopt(argc, argv,
@@ -87,7 +87,7 @@
                if (c < 0)
                        break;
                switch (c) {
-@@ -248,6 +249,9 @@ int main(int argc, char *argv[])
+@@ -249,6 +250,9 @@ int main(int argc, char *argv[])
                        usage();
                        exitcode = 0;
                        goto out;
@@ -99,7 +99,7 @@
                        break;
 --- a/wpa_supplicant/wpa_supplicant.c
 +++ b/wpa_supplicant/wpa_supplicant.c
-@@ -130,6 +130,54 @@ static void wpas_update_fils_connect_par
+@@ -131,6 +131,54 @@ static void wpas_update_fils_connect_par
  static void wpas_update_owe_connect_params(struct wpa_supplicant *wpa_s);
  #endif /* CONFIG_OWE */
  
  
  #ifdef CONFIG_WEP
  /* Configure default/group WEP keys for static WEP */
-@@ -1015,6 +1063,8 @@ void wpa_supplicant_set_state(struct wpa
+@@ -1016,6 +1064,8 @@ void wpa_supplicant_set_state(struct wpa
  
                sme_sched_obss_scan(wpa_s, 1);
  
  #if defined(CONFIG_FILS) && defined(IEEE8021X_EAPOL)
                if (!fils_hlp_sent && ssid && ssid->eap.erp)
                        update_fils_connect_params = true;
-@@ -1025,6 +1075,8 @@ void wpa_supplicant_set_state(struct wpa
+@@ -1026,6 +1076,8 @@ void wpa_supplicant_set_state(struct wpa
  #endif /* CONFIG_OWE */
        } else if (state == WPA_DISCONNECTED || state == WPA_ASSOCIATING ||
                   state == WPA_ASSOCIATED) {
                wpa_s->new_connection = 1;
                wpa_drv_set_operstate(wpa_s, 0);
  #ifndef IEEE8021X_EAPOL
-@@ -2308,6 +2360,8 @@ void wpa_supplicant_associate(struct wpa
+@@ -2335,6 +2387,8 @@ void wpa_supplicant_associate(struct wpa
                        return;
                }
                wpa_s->current_bss = bss;
  #else /* CONFIG_MESH */
                wpa_msg(wpa_s, MSG_ERROR,
                        "mesh mode support not included in the build");
-@@ -6650,6 +6704,16 @@ static int wpa_supplicant_init_iface(str
+@@ -6693,6 +6747,16 @@ static int wpa_supplicant_init_iface(str
                           sizeof(wpa_s->bridge_ifname));
        }
  
        /* RSNA Supplicant Key Management - INITIALIZE */
        eapol_sm_notify_portEnabled(wpa_s->eapol, false);
        eapol_sm_notify_portValid(wpa_s->eapol, false);
-@@ -6987,6 +7051,11 @@ static void wpa_supplicant_deinit_iface(
+@@ -7031,6 +7095,11 @@ static void wpa_supplicant_deinit_iface(
        if (terminate)
                wpa_msg(wpa_s, MSG_INFO, WPA_EVENT_TERMINATING);
  
  
 --- a/wpa_supplicant/wpa_supplicant_i.h
 +++ b/wpa_supplicant/wpa_supplicant_i.h
-@@ -104,6 +104,11 @@ struct wpa_interface {
+@@ -105,6 +105,11 @@ struct wpa_interface {
        const char *ifname;
  
        /**
         * bridge_ifname - Optional bridge interface name
         *
         * If the driver interface (ifname) is included in a Linux bridge
-@@ -718,6 +723,8 @@ struct wpa_supplicant {
+@@ -717,6 +722,8 @@ struct wpa_supplicant {
  #endif /* CONFIG_CTRL_IFACE_BINDER */
        char bridge_ifname[16];
  
  
 --- a/hostapd/ctrl_iface.c
 +++ b/hostapd/ctrl_iface.c
-@@ -2889,6 +2889,12 @@ static int hostapd_ctrl_iface_chan_switc
+@@ -2641,6 +2641,12 @@ static int hostapd_ctrl_iface_chan_switc
                return 0;
        }
  
 +
        for (i = 0; i < iface->num_bss; i++) {
  
-               /* Save CHAN_SWITCH VHT and HE config */
+               /* Save CHAN_SWITCH VHT, HE, and EHT config */
 --- a/src/ap/beacon.c
 +++ b/src/ap/beacon.c
-@@ -1791,11 +1791,6 @@ static int __ieee802_11_set_beacon(struc
+@@ -1903,11 +1903,6 @@ static int __ieee802_11_set_beacon(struc
                return -1;
        }
  
        if (ieee802_11_build_ap_params(hapd, &params) < 0)
 --- a/wpa_supplicant/events.c
 +++ b/wpa_supplicant/events.c
-@@ -4891,6 +4891,60 @@ static void wpas_event_unprot_beacon(str
+@@ -4953,6 +4953,60 @@ static void wpas_event_unprot_beacon(str
  }
  
  
  void supplicant_event(void *ctx, enum wpa_event_type event,
                      union wpa_event_data *data)
  {
-@@ -5206,8 +5260,10 @@ void supplicant_event(void *ctx, enum wp
+@@ -5268,8 +5322,10 @@ void supplicant_event(void *ctx, enum wp
                        channel_width_to_string(data->ch_switch.ch_width),
                        data->ch_switch.cf1,
                        data->ch_switch.cf2);
                wpa_s->current_ssid->frequency = data->ch_switch.freq;
 --- a/src/drivers/driver.h
 +++ b/src/drivers/driver.h
-@@ -5837,6 +5837,7 @@ union wpa_event_data {
+@@ -5968,6 +5968,7 @@ union wpa_event_data {
  
        /**
         * struct ch_switch
         * @freq: Frequency of new channel in MHz
         * @ht_enabled: Whether this is an HT channel
         * @ch_offset: Secondary channel offset
-@@ -5845,6 +5846,7 @@ union wpa_event_data {
+@@ -5976,6 +5977,7 @@ union wpa_event_data {
         * @cf2: Center frequency 2
         */
        struct ch_switch {
                int ch_offset;
 --- a/src/drivers/driver_nl80211_event.c
 +++ b/src/drivers/driver_nl80211_event.c
-@@ -684,7 +684,7 @@ static void mlme_event_ch_switch(struct
+@@ -694,7 +694,7 @@ static void mlme_event_ch_switch(struct
                                 struct nlattr *ifindex, struct nlattr *freq,
                                 struct nlattr *type, struct nlattr *bw,
                                 struct nlattr *cf1, struct nlattr *cf2,
  {
        struct i802_bss *bss;
        union wpa_event_data data;
-@@ -745,6 +745,8 @@ static void mlme_event_ch_switch(struct
+@@ -755,6 +755,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 (finished)
                bss->freq = data.ch_switch.freq;
-@@ -3003,6 +3005,7 @@ static void do_process_drv_event(struct
+@@ -3113,6 +3115,7 @@ static void do_process_drv_event(struct
                                     tb[NL80211_ATTR_CHANNEL_WIDTH],
                                     tb[NL80211_ATTR_CENTER_FREQ1],
                                     tb[NL80211_ATTR_CENTER_FREQ2],
                                     0);
                break;
        case NL80211_CMD_CH_SWITCH_NOTIFY:
-@@ -3013,6 +3016,7 @@ static void do_process_drv_event(struct
+@@ -3123,6 +3126,7 @@ static void do_process_drv_event(struct
                                     tb[NL80211_ATTR_CHANNEL_WIDTH],
                                     tb[NL80211_ATTR_CENTER_FREQ1],
                                     tb[NL80211_ATTR_CENTER_FREQ2],
index 92b52a6d370c3805bd29f65eb6e24b58a00dc24a..1f78c42dee560c4f86fca7abc14ac6baaa453bc0 100644 (file)
@@ -12,7 +12,7 @@
  else
 --- a/hostapd/ctrl_iface.c
 +++ b/hostapd/ctrl_iface.c
-@@ -3587,6 +3587,7 @@ static int hostapd_ctrl_iface_receive_pr
+@@ -3265,6 +3265,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);
@@ -20,7 +20,7 @@
        } else if (os_strcmp(buf, "MIB") == 0) {
                reply_len = ieee802_11_get_mib(hapd, reply, reply_size);
                if (reply_len >= 0) {
-@@ -3628,6 +3629,7 @@ static int hostapd_ctrl_iface_receive_pr
+@@ -3306,6 +3307,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);
@@ -30,7 +30,7 @@
                        reply_len = -1;
 --- a/wpa_supplicant/Makefile
 +++ b/wpa_supplicant/Makefile
-@@ -958,6 +958,9 @@ ifdef CONFIG_FILS
+@@ -973,6 +973,9 @@ ifdef CONFIG_FILS
  OBJS += ../src/ap/fils_hlp.o
  endif
  ifdef CONFIG_CTRL_IFACE
@@ -42,7 +42,7 @@
  
 --- a/wpa_supplicant/ctrl_iface.c
 +++ b/wpa_supplicant/ctrl_iface.c
-@@ -2314,7 +2314,7 @@ static int wpa_supplicant_ctrl_iface_sta
+@@ -2325,7 +2325,7 @@ static int wpa_supplicant_ctrl_iface_sta
                        pos += ret;
                }
  
@@ -51,7 +51,7 @@
                if (wpa_s->ap_iface) {
                        pos += ap_ctrl_iface_wpa_get_status(wpa_s, pos,
                                                            end - pos,
-@@ -11494,6 +11494,7 @@ char * wpa_supplicant_ctrl_iface_process
+@@ -11565,6 +11565,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);
@@ -59,7 +59,7 @@
        } else if (os_strcmp(buf, "MIB") == 0) {
                reply_len = wpa_sm_get_mib(wpa_s->wpa, reply, reply_size);
                if (reply_len >= 0) {
-@@ -11506,6 +11507,7 @@ char * wpa_supplicant_ctrl_iface_process
+@@ -11577,6 +11578,7 @@ char * wpa_supplicant_ctrl_iface_process
                                reply_size - reply_len);
  #endif /* CONFIG_MACSEC */
                }
@@ -67,7 +67,7 @@
        } else if (os_strncmp(buf, "STATUS", 6) == 0) {
                reply_len = wpa_supplicant_ctrl_iface_status(
                        wpa_s, buf + 6, reply, reply_size);
-@@ -11994,6 +11996,7 @@ char * wpa_supplicant_ctrl_iface_process
+@@ -12065,6 +12067,7 @@ char * wpa_supplicant_ctrl_iface_process
                reply_len = wpa_supplicant_ctrl_iface_bss(
                        wpa_s, buf + 4, reply, reply_size);
  #ifdef CONFIG_AP
@@ -75,7 +75,7 @@
        } 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) {
-@@ -12002,12 +12005,15 @@ char * wpa_supplicant_ctrl_iface_process
+@@ -12073,12 +12076,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);
                        reply_len = -1;
 --- a/src/ap/ctrl_iface_ap.c
 +++ b/src/ap/ctrl_iface_ap.c
-@@ -25,6 +25,7 @@
- #include "mbo_ap.h"
+@@ -26,6 +26,7 @@
  #include "taxonomy.h"
+ #include "wnm_ap.h"
  
 +#ifdef CONFIG_CTRL_IFACE_MIB
  
  static size_t hostapd_write_ht_mcs_bitmask(char *buf, size_t buflen,
                                           size_t curr_len, const u8 *mcs_set)
-@@ -459,6 +460,7 @@ int hostapd_ctrl_iface_sta_next(struct h
+@@ -460,6 +461,7 @@ int hostapd_ctrl_iface_sta_next(struct h
        return hostapd_ctrl_iface_sta_mib(hapd, sta->next, buf, buflen);
  }
  
  
  #ifdef CONFIG_P2P_MANAGER
  static int p2p_manager_disconnect(struct hostapd_data *hapd, u16 stype,
-@@ -815,12 +817,12 @@ int hostapd_ctrl_iface_status(struct hos
+@@ -832,12 +834,12 @@ int hostapd_ctrl_iface_status(struct hos
                        return len;
                len += ret;
        }
                if (os_snprintf_error(buflen - len, ret))
 --- a/src/ap/ieee802_1x.c
 +++ b/src/ap/ieee802_1x.c
-@@ -2712,6 +2712,7 @@ static const char * bool_txt(bool val)
+@@ -2740,6 +2740,7 @@ static const char * bool_txt(bool val)
        return val ? "TRUE" : "FALSE";
  }
  
  
  int ieee802_1x_get_mib(struct hostapd_data *hapd, char *buf, size_t buflen)
  {
-@@ -2898,6 +2899,7 @@ int ieee802_1x_get_mib_sta(struct hostap
+@@ -2926,6 +2927,7 @@ int ieee802_1x_get_mib_sta(struct hostap
        return len;
  }
  
  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
-@@ -4519,6 +4519,7 @@ static const char * wpa_bool_txt(int val
+@@ -4559,6 +4559,7 @@ static const char * wpa_bool_txt(int val
        return val ? "TRUE" : "FALSE";
  }
  
  
  #define RSN_SUITE "%02x-%02x-%02x-%d"
  #define RSN_SUITE_ARG(s) \
-@@ -4669,7 +4670,7 @@ int wpa_get_mib_sta(struct wpa_state_mac
+@@ -4709,7 +4710,7 @@ int wpa_get_mib_sta(struct wpa_state_mac
  
        return len;
  }
  {
 --- a/src/rsn_supp/wpa.c
 +++ b/src/rsn_supp/wpa.c
-@@ -2777,6 +2777,8 @@ static u32 wpa_key_mgmt_suite(struct wpa
+@@ -2802,6 +2802,8 @@ static u32 wpa_key_mgmt_suite(struct wpa
  }
  
  
  #define RSN_SUITE "%02x-%02x-%02x-%d"
  #define RSN_SUITE_ARG(s) \
  ((s) >> 24) & 0xff, ((s) >> 16) & 0xff, ((s) >> 8) & 0xff, (s) & 0xff
-@@ -2858,6 +2860,7 @@ int wpa_sm_get_mib(struct wpa_sm *sm, ch
+@@ -2883,6 +2885,7 @@ int wpa_sm_get_mib(struct wpa_sm *sm, ch
  
        return (int) len;
  }
  
 --- a/wpa_supplicant/ap.c
 +++ b/wpa_supplicant/ap.c
-@@ -1462,7 +1462,7 @@ int wpas_ap_wps_nfc_report_handover(stru
+@@ -1477,7 +1477,7 @@ int wpas_ap_wps_nfc_report_handover(stru
  #endif /* CONFIG_WPS */
  
  
index 65a8b07e65a54c49473e983f03c345d7e0b5a2a0..bf481c3bab7dd98d467a95d1142539fdf168dde9 100644 (file)
@@ -1,6 +1,6 @@
 --- a/src/common/wpa_common.c
 +++ b/src/common/wpa_common.c
-@@ -2444,6 +2444,31 @@ u32 wpa_akm_to_suite(int akm)
+@@ -2529,6 +2529,31 @@ u32 wpa_akm_to_suite(int akm)
  }
  
  
@@ -32,7 +32,7 @@
  int wpa_compare_rsn_ie(int ft_initial_assoc,
                       const u8 *ie1, size_t ie1len,
                       const u8 *ie2, size_t ie2len)
-@@ -2451,8 +2476,19 @@ int wpa_compare_rsn_ie(int ft_initial_as
+@@ -2536,8 +2561,19 @@ int wpa_compare_rsn_ie(int ft_initial_as
        if (ie1 == NULL || ie2 == NULL)
                return -1;
  
index f708bf39ba5ae2cbe6ba82d6aa15c76517f87f59..edcd98525743ed4313f066bae14e788bdf59c649 100644 (file)
@@ -11,7 +11,7 @@
                        bss->wpa_pairwise |= WPA_CIPHER_TKIP;
  #endif /* CONFIG_NO_TKIP */
                bss->rsn_pairwise = bss->wpa_pairwise;
-@@ -1180,8 +1179,7 @@ int hostapd_init_wps(struct hostapd_data
+@@ -1181,8 +1180,7 @@ int hostapd_init_wps(struct hostapd_data
                                          WPA_CIPHER_GCMP_256)) {
                        wps->encr_types |= WPS_ENCR_AES;
                        wps->encr_types_rsn |= WPS_ENCR_AES;
index dc1fa3d29d99055bfea9d78d4fd32eb71bf10b9d..e52420953a2cc39c9778439b93e2f87b1cb0a72c 100644 (file)
@@ -32,7 +32,7 @@
  
  
  static int hostapd_cli_cmd_disassoc_imminent(struct wpa_ctrl *ctrl, int argc,
-@@ -1579,13 +1575,10 @@ static const struct hostapd_cli_cmd host
+@@ -1588,13 +1584,10 @@ static const struct hostapd_cli_cmd host
        { "disassociate", hostapd_cli_cmd_disassociate,
          hostapd_complete_stations,
          "<addr> = disassociate a station" },
@@ -46,7 +46,7 @@
        { "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,
-@@ -1610,7 +1603,6 @@ static const struct hostapd_cli_cmd host
+@@ -1619,7 +1612,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 28f07c7dc21c76ec596589a8b72803e5ec1da0e9..38ff663173dd1d879f7611706d0294143305606d 100644 (file)
@@ -22,7 +22,7 @@ Signed-hostap: Antonio Quartulli <ordex@autistici.org>
  #include "common/defs.h"
  #include "common/ieee802_11_defs.h"
  #include "common/wpa_common.h"
-@@ -857,6 +858,9 @@ struct wpa_driver_associate_params {
+@@ -894,6 +895,9 @@ struct wpa_driver_associate_params {
         * responsible for selecting with which BSS to associate. */
        const u8 *bssid;
  
@@ -42,7 +42,7 @@ Signed-hostap: Antonio Quartulli <ordex@autistici.org>
  #include "config.h"
  
  
-@@ -2321,6 +2322,97 @@ static char * wpa_config_write_peerkey(c
+@@ -2345,6 +2346,97 @@ static char * wpa_config_write_peerkey(c
  #endif /* NO_CONFIG_WRITE */
  
  
@@ -140,7 +140,7 @@ Signed-hostap: Antonio Quartulli <ordex@autistici.org>
  /* Helper macros for network block parser */
  
  #ifdef OFFSET
-@@ -2606,6 +2698,8 @@ static const struct parse_data ssid_fiel
+@@ -2629,6 +2721,8 @@ static const struct parse_data ssid_fiel
        { INT(ap_max_inactivity) },
        { INT(dtim_period) },
        { INT(beacon_int) },
@@ -174,7 +174,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
-@@ -3865,6 +3865,12 @@ static void wpas_start_assoc_cb(struct w
+@@ -3899,6 +3899,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 0be77f9845127b80f7dc1304186a2e8bdc4167ef..65d67b8b05818f6af721220c609f68b22d2143fe 100644 (file)
@@ -10,7 +10,7 @@ Signed-hostap: Antonio Quartulli <ordex@autistici.org>
 
 --- a/src/drivers/driver_nl80211.c
 +++ b/src/drivers/driver_nl80211.c
-@@ -5966,7 +5966,7 @@ static int wpa_driver_nl80211_ibss(struc
+@@ -6005,7 +6005,7 @@ static int wpa_driver_nl80211_ibss(struc
                                   struct wpa_driver_associate_params *params)
  {
        struct nl_msg *msg;
@@ -19,7 +19,7 @@ Signed-hostap: Antonio Quartulli <ordex@autistici.org>
        int count = 0;
  
        wpa_printf(MSG_DEBUG, "nl80211: Join IBSS (ifindex=%d)", drv->ifindex);
-@@ -5993,6 +5993,37 @@ retry:
+@@ -6032,6 +6032,37 @@ retry:
            nl80211_put_beacon_int(msg, params->beacon_int))
                goto fail;
  
index bd1d4d7565a9645784b65e372505fdc10ffe5309..5dc19fedee1f69940623647972aef098bc7cde30 100644 (file)
@@ -19,7 +19,7 @@ Tested-by: Simon Wunderlich <simon.wunderlich@openmesh.com>
 
 --- a/src/drivers/driver.h
 +++ b/src/drivers/driver.h
-@@ -1624,6 +1624,7 @@ struct wpa_driver_mesh_join_params {
+@@ -1661,6 +1661,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
-@@ -10496,6 +10496,18 @@ static int nl80211_put_mesh_id(struct nl
+@@ -10627,6 +10627,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)
  {
-@@ -10557,6 +10569,7 @@ static int nl80211_join_mesh(struct i802
+@@ -10688,6 +10700,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) ||
@@ -58,7 +58,7 @@ Tested-by: Simon Wunderlich <simon.wunderlich@openmesh.com>
  
 --- a/wpa_supplicant/mesh.c
 +++ b/wpa_supplicant/mesh.c
-@@ -631,6 +631,7 @@ int wpa_supplicant_join_mesh(struct wpa_
+@@ -632,6 +632,7 @@ int wpa_supplicant_join_mesh(struct wpa_
  
        params->meshid = ssid->ssid;
        params->meshid_len = ssid->ssid_len;
index 4807727e0e59ee4fb4092deace4fcbb654c1c160..48086ea0e3a03b471dc05bde5ae72014f1ac3aef 100644 (file)
@@ -1,6 +1,6 @@
 --- a/wpa_supplicant/wpa_supplicant.c
 +++ b/wpa_supplicant/wpa_supplicant.c
-@@ -2512,11 +2512,13 @@ void ibss_mesh_setup_freq(struct wpa_sup
+@@ -2539,11 +2539,13 @@ void ibss_mesh_setup_freq(struct wpa_sup
        for (j = 0; j < wpa_s->last_scan_res_used; j++) {
                struct wpa_bss *bss = wpa_s->last_scan_res[j];
  
index c0b01196c4e546ac9eadd1cd0b1bfd1d1062277f..6810b797c9b1a72cb38df0333c954a5f39547186 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
-@@ -3485,6 +3485,8 @@ static int hostapd_config_fill(struct ho
+@@ -3489,6 +3489,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 c51db01fec3c2f7f00f00ff57a44fabb9ba62170..e0458b205480216302b1b63fa81c88311ce034c1 100644 (file)
@@ -1,6 +1,6 @@
 --- a/hostapd/Makefile
 +++ b/hostapd/Makefile
-@@ -1297,7 +1297,7 @@ hostapd_multi.a: $(BCHECK) $(OBJS)
+@@ -1307,7 +1307,7 @@ hostapd_multi.a: $(BCHECK) $(OBJS)
        @$(AR) cr $@ hostapd_multi.o $(OBJS)
  
  hostapd: $(OBJS)
@@ -9,7 +9,7 @@
        @$(E) "  LD " $@
  
  ifdef CONFIG_WPA_TRACE
-@@ -1308,7 +1308,7 @@ _OBJS_VAR := OBJS_c
+@@ -1318,7 +1318,7 @@ _OBJS_VAR := OBJS_c
  include ../src/objs.mk
  
  hostapd_cli: $(OBJS_c)
@@ -20,7 +20,7 @@
  NOBJS = nt_password_hash.o ../src/crypto/ms_funcs.o $(SHA1OBJS)
 --- a/wpa_supplicant/Makefile
 +++ b/wpa_supplicant/Makefile
-@@ -1920,31 +1920,31 @@ wpa_supplicant_multi.a: .config $(BCHECK
+@@ -1949,31 +1949,31 @@ wpa_supplicant_multi.a: .config $(BCHECK
        @$(AR) cr $@ wpa_supplicant_multi.o $(OBJS)
  
  wpa_supplicant: $(BCHECK) $(OBJS) $(EXTRA_progs)
index ee3ab7938a279e58ae6a198991ada75f994fd023..98b8820cd77addc119c746440cafcbfc412e1f55 100644 (file)
@@ -1,6 +1,6 @@
 --- a/src/ap/hostapd.h
 +++ b/src/ap/hostapd.h
-@@ -150,6 +150,21 @@ struct hostapd_sae_commit_queue {
+@@ -162,6 +162,21 @@ struct hostapd_sae_commit_queue {
  };
  
  /**
@@ -22,7 +22,7 @@
   * struct hostapd_data - hostapd per-BSS data structure
   */
  struct hostapd_data {
-@@ -163,6 +178,9 @@ struct hostapd_data {
+@@ -175,6 +190,9 @@ struct hostapd_data {
  
        u8 own_addr[ETH_ALEN];
  
@@ -42,7 +42,7 @@
        wpa_printf(MSG_DEBUG, "WNM: Send BSS Transition Management Request to "
                   MACSTR " dialog_token=%u req_mode=0x%x disassoc_timer=%u "
                   "validity_interval=%u",
-@@ -646,10 +647,12 @@ int ieee802_11_rx_wnm_action_ap(struct h
+@@ -659,10 +660,12 @@ int ieee802_11_rx_wnm_action_ap(struct h
  
        switch (action) {
        case WNM_BSS_TRANS_MGMT_QUERY:
@@ -55,7 +55,7 @@
                ieee802_11_rx_bss_trans_mgmt_resp(hapd, mgmt->sa, payload,
                                                  plen);
                return 0;
-@@ -696,6 +699,7 @@ int wnm_send_disassoc_imminent(struct ho
+@@ -709,6 +712,7 @@ int wnm_send_disassoc_imminent(struct ho
  
        pos = mgmt->u.action.u.bss_tm_req.variable;
  
@@ -63,7 +63,7 @@
        wpa_printf(MSG_DEBUG, "WNM: Send BSS Transition Management Request frame to indicate imminent disassociation (disassoc_timer=%d) to "
                   MACSTR, disassoc_timer, MAC2STR(sta->addr));
        if (hostapd_drv_send_mlme(hapd, buf, pos - buf, 0, NULL, 0, 0) < 0) {
-@@ -777,6 +781,7 @@ int wnm_send_ess_disassoc_imminent(struc
+@@ -790,6 +794,7 @@ int wnm_send_ess_disassoc_imminent(struc
                return -1;
        }
  
@@ -71,7 +71,7 @@
        if (disassoc_timer) {
                /* send disassociation frame after time-out */
                set_disassoc_timer(hapd, sta, disassoc_timer);
-@@ -857,6 +862,7 @@ int wnm_send_bss_tm_req(struct hostapd_d
+@@ -870,6 +875,7 @@ int wnm_send_bss_tm_req(struct hostapd_d
        }
        os_free(buf);
  
index 4abb6887f68d593594de165a2b55540112c90fc7..7c6c5e38144215655018704d832c475a83a8208d 100644 (file)
@@ -14,7 +14,7 @@
  CFLAGS += -O0 -fprofile-arcs -ftest-coverage
 --- a/src/ap/hostapd.h
 +++ b/src/ap/hostapd.h
-@@ -17,6 +17,7 @@
+@@ -18,6 +18,7 @@
  #include "utils/list.h"
  #include "ap_config.h"
  #include "drivers/driver.h"
@@ -22,7 +22,7 @@
  
  #define OCE_STA_CFON_ENABLED(hapd) \
        ((hapd->conf->oce & OCE_STA_CFON) && \
-@@ -80,7 +81,7 @@ struct hapd_interfaces {
+@@ -92,7 +93,7 @@ struct hapd_interfaces {
  #ifdef CONFIG_CTRL_IFACE_UDP
         unsigned char ctrl_iface_cookie[CTRL_IFACE_COOKIE_LEN];
  #endif /* CONFIG_CTRL_IFACE_UDP */
@@ -31,7 +31,7 @@
  };
  
  enum hostapd_chan_status {
-@@ -171,6 +172,7 @@ struct hostapd_data {
+@@ -183,6 +184,7 @@ struct hostapd_data {
        struct hostapd_iface *iface;
        struct hostapd_config *iconf;
        struct hostapd_bss_config *conf;
@@ -39,7 +39,7 @@
        int interface_added; /* virtual interface added for this BSS */
        unsigned int started:1;
        unsigned int disabled:1;
-@@ -630,6 +632,7 @@ hostapd_alloc_bss_data(struct hostapd_if
+@@ -673,6 +675,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);
@@ -49,7 +49,7 @@
  struct hostapd_iface * hostapd_alloc_iface(void);
 --- a/src/ap/hostapd.c
 +++ b/src/ap/hostapd.c
-@@ -396,6 +396,7 @@ void hostapd_free_hapd_data(struct hosta
+@@ -401,6 +401,7 @@ void hostapd_free_hapd_data(struct hosta
        hapd->beacon_set_done = 0;
  
        wpa_printf(MSG_DEBUG, "%s(%s)", __func__, hapd->conf->iface);
@@ -57,7 +57,7 @@
        accounting_deinit(hapd);
        hostapd_deinit_wpa(hapd);
        vlan_deinit(hapd);
-@@ -1422,6 +1423,8 @@ static int hostapd_setup_bss(struct host
+@@ -1431,6 +1432,8 @@ static int hostapd_setup_bss(struct host
        if (hapd->driver && hapd->driver->set_operstate)
                hapd->driver->set_operstate(hapd->drv_priv, 1);
  
@@ -66,7 +66,7 @@
        return 0;
  }
  
-@@ -2028,6 +2031,7 @@ static int hostapd_setup_interface_compl
+@@ -2050,6 +2053,7 @@ static int hostapd_setup_interface_compl
        if (err)
                goto fail;
  
@@ -74,7 +74,7 @@
        wpa_printf(MSG_DEBUG, "Completing interface initialization");
        if (iface->freq) {
  #ifdef NEED_AP_MLME
-@@ -2225,6 +2229,7 @@ dfs_offload:
+@@ -2248,6 +2252,7 @@ dfs_offload:
  
  fail:
        wpa_printf(MSG_ERROR, "Interface initialization failed");
@@ -82,7 +82,7 @@
        hostapd_set_state(iface, HAPD_IFACE_DISABLED);
        wpa_msg(hapd->msg_ctx, MSG_INFO, AP_EVENT_DISABLED);
  #ifdef CONFIG_FST
-@@ -2700,6 +2705,7 @@ void hostapd_interface_deinit_free(struc
+@@ -2723,6 +2728,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;
@@ -92,7 +92,7 @@
                   __func__, driver, drv_priv);
 --- a/src/ap/ieee802_11.c
 +++ b/src/ap/ieee802_11.c
-@@ -3553,13 +3553,18 @@ static void handle_auth(struct hostapd_d
+@@ -3573,13 +3573,18 @@ static void handle_auth(struct hostapd_d
        u16 auth_alg, auth_transaction, status_code;
        u16 resp = WLAN_STATUS_SUCCESS;
        struct sta_info *sta = NULL;
  
        if (len < IEEE80211_HDRLEN + sizeof(mgmt->u.auth)) {
                wpa_printf(MSG_INFO, "handle_auth - too short payload (len=%lu)",
-@@ -3727,6 +3732,13 @@ static void handle_auth(struct hostapd_d
+@@ -3747,6 +3752,13 @@ static void handle_auth(struct hostapd_d
                resp = WLAN_STATUS_UNSPECIFIED_FAILURE;
                goto fail;
        }
        if (res == HOSTAPD_ACL_PENDING)
                return;
  
-@@ -5447,7 +5459,7 @@ static void handle_assoc(struct hostapd_
+@@ -5488,7 +5500,7 @@ static void handle_assoc(struct hostapd_
        int resp = WLAN_STATUS_SUCCESS;
        u16 reply_res = WLAN_STATUS_UNSPECIFIED_FAILURE;
        const u8 *pos;
        struct sta_info *sta;
        u8 *tmp = NULL;
  #ifdef CONFIG_FILS
-@@ -5660,6 +5672,11 @@ static void handle_assoc(struct hostapd_
+@@ -5701,6 +5713,11 @@ static void handle_assoc(struct hostapd_
                left = res;
        }
  #endif /* CONFIG_FILS */
  
        /* followed by SSID and Supported rates; and HT capabilities if 802.11n
         * is used */
-@@ -5758,6 +5775,13 @@ static void handle_assoc(struct hostapd_
+@@ -5799,6 +5816,13 @@ static void handle_assoc(struct hostapd_
        }
  #endif /* CONFIG_FILS */
  
   fail:
  
        /*
-@@ -5851,6 +5875,7 @@ static void handle_disassoc(struct hosta
+@@ -5892,6 +5916,7 @@ static void handle_disassoc(struct hosta
        wpa_printf(MSG_DEBUG, "disassocation: STA=" MACSTR " reason_code=%d",
                   MAC2STR(mgmt->sa),
                   le_to_host16(mgmt->u.disassoc.reason_code));
  
        sta = ap_get_sta(hapd, mgmt->sa);
        if (sta == NULL) {
-@@ -5920,6 +5945,8 @@ static void handle_deauth(struct hostapd
+@@ -5961,6 +5986,8 @@ static void handle_deauth(struct hostapd
        /* Clear the PTKSA cache entries for PASN */
        ptksa_cache_flush(hapd->ptksa, mgmt->sa, WPA_CIPHER_NONE);
  
                wpa_msg(hapd->msg_ctx, MSG_DEBUG, "Station " MACSTR " trying "
 --- a/src/ap/beacon.c
 +++ b/src/ap/beacon.c
-@@ -852,6 +852,12 @@ void handle_probe_req(struct hostapd_dat
+@@ -919,6 +919,12 @@ void handle_probe_req(struct hostapd_dat
        u16 csa_offs[2];
        size_t csa_offs_len;
        struct radius_sta rad_info;
  
        if (hapd->iconf->rssi_ignore_probe_request && ssi_signal &&
            ssi_signal < hapd->iconf->rssi_ignore_probe_request)
-@@ -1038,6 +1044,12 @@ void handle_probe_req(struct hostapd_dat
+@@ -1105,6 +1111,12 @@ void handle_probe_req(struct hostapd_dat
        }
  #endif /* CONFIG_P2P */
  
                wpabuf_free(sta->p2p_ie);
 --- a/src/ap/sta_info.c
 +++ b/src/ap/sta_info.c
-@@ -458,6 +458,7 @@ void ap_handle_timer(void *eloop_ctx, vo
+@@ -460,6 +460,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");
                ap_free_sta(hapd, sta);
                return;
        }
-@@ -613,6 +614,7 @@ skip_poll:
+@@ -615,6 +616,7 @@ skip_poll:
                mlme_deauthenticate_indication(
                        hapd, sta,
                        WLAN_REASON_PREV_AUTH_NOT_VALID);
                    hapd->msg_ctx_parent != hapd->msg_ctx)
 --- a/src/ap/wpa_auth_glue.c
 +++ b/src/ap/wpa_auth_glue.c
-@@ -265,6 +265,7 @@ static void hostapd_wpa_auth_psk_failure
+@@ -268,6 +268,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));
  
 --- a/wpa_supplicant/Makefile
 +++ b/wpa_supplicant/Makefile
-@@ -176,6 +176,12 @@ ifdef CONFIG_EAPOL_TEST
+@@ -183,6 +183,12 @@ ifdef CONFIG_EAPOL_TEST
  CFLAGS += -Werror -DEAPOL_TEST
  endif
  
  ifdef CONFIG_CODE_COVERAGE
  CFLAGS += -O0 -fprofile-arcs -ftest-coverage
  LIBS += -lgcov
-@@ -962,6 +968,9 @@ ifdef CONFIG_CTRL_IFACE_MIB
+@@ -977,6 +983,9 @@ ifdef CONFIG_CTRL_IFACE_MIB
  CFLAGS += -DCONFIG_CTRL_IFACE_MIB
  endif
  OBJS += ../src/ap/ctrl_iface_ap.o
  CFLAGS += -DEAP_SERVER -DEAP_SERVER_IDENTITY
 --- a/wpa_supplicant/wpa_supplicant.c
 +++ b/wpa_supplicant/wpa_supplicant.c
-@@ -7241,6 +7241,8 @@ struct wpa_supplicant * wpa_supplicant_a
+@@ -7285,6 +7285,8 @@ struct wpa_supplicant * wpa_supplicant_a
        }
  #endif /* CONFIG_P2P */
  
        return wpa_s;
  }
  
-@@ -7267,6 +7269,8 @@ int wpa_supplicant_remove_iface(struct w
+@@ -7311,6 +7313,8 @@ int wpa_supplicant_remove_iface(struct w
        struct wpa_supplicant *parent = wpa_s->parent;
  #endif /* CONFIG_MESH */
  
        /* Remove interface from the global list of interfaces */
        prev = global->ifaces;
        if (prev == wpa_s) {
-@@ -7570,8 +7574,12 @@ int wpa_supplicant_run(struct wpa_global
+@@ -7614,8 +7618,12 @@ int wpa_supplicant_run(struct wpa_global
        eloop_register_signal_terminate(wpa_supplicant_terminate, global);
        eloop_register_signal_reconfig(wpa_supplicant_reconfig, global);
  
  
 --- a/wpa_supplicant/wpa_supplicant_i.h
 +++ b/wpa_supplicant/wpa_supplicant_i.h
-@@ -19,6 +19,7 @@
+@@ -20,6 +20,7 @@
  #include "wps/wps_defs.h"
  #include "config_ssid.h"
  #include "wmm_ac.h"
  
  extern const char *const wpa_supplicant_version;
  extern const char *const wpa_supplicant_license;
-@@ -322,6 +323,8 @@ struct wpa_global {
+@@ -323,6 +324,8 @@ struct wpa_global {
  #endif /* CONFIG_WIFI_DISPLAY */
  
        struct psk_list_entry *add_psk; /* From group formation */
  };
  
  
-@@ -708,6 +711,7 @@ struct wpa_supplicant {
+@@ -707,6 +710,7 @@ struct wpa_supplicant {
        unsigned char own_addr[ETH_ALEN];
        unsigned char perm_addr[ETH_ALEN];
        char ifname[100];
  
  
  #ifndef WPS_PIN_SCAN_IGNORE_SEL_REG
-@@ -393,6 +394,8 @@ static int wpa_supplicant_wps_cred(void
+@@ -391,6 +392,8 @@ static int wpa_supplicant_wps_cred(void
        wpa_hexdump_key(MSG_DEBUG, "WPS: Received Credential attribute",
                        cred->cred_attr, cred->cred_attr_len);
  
  
 --- a/hostapd/main.c
 +++ b/hostapd/main.c
-@@ -895,6 +895,7 @@ int main(int argc, char *argv[])
+@@ -897,6 +897,7 @@ int main(int argc, char *argv[])
        }
  
        hostapd_global_ctrl_iface_init(&interfaces);
  
        if (hostapd_global_run(&interfaces, daemonize, pid_file)) {
                wpa_printf(MSG_ERROR, "Failed to start eloop");
-@@ -904,6 +905,7 @@ int main(int argc, char *argv[])
+@@ -906,6 +907,7 @@ int main(int argc, char *argv[])
        ret = 0;
  
   out:
        for (i = 0; i < interfaces.count; i++) {
 --- a/wpa_supplicant/main.c
 +++ b/wpa_supplicant/main.c
-@@ -203,7 +203,7 @@ int main(int argc, char *argv[])
+@@ -204,7 +204,7 @@ int main(int argc, char *argv[])
  
        for (;;) {
                c = getopt(argc, argv,
                if (c < 0)
                        break;
                switch (c) {
-@@ -271,6 +271,9 @@ int main(int argc, char *argv[])
+@@ -272,6 +272,9 @@ int main(int argc, char *argv[])
                        params.conf_p2p_dev = optarg;
                        break;
  #endif /* CONFIG_P2P */
  
 --- a/src/ap/dfs.c
 +++ b/src/ap/dfs.c
-@@ -1196,6 +1196,8 @@ int hostapd_dfs_radar_detected(struct ho
+@@ -1203,6 +1203,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);
  
        }
 --- a/src/ap/sta_info.h
 +++ b/src/ap/sta_info.h
-@@ -324,6 +324,7 @@ struct sta_info {
+@@ -328,6 +328,7 @@ struct sta_info {
  #endif /* CONFIG_TESTING_OPTIONS */
  #ifdef CONFIG_AIRTIME_POLICY
        unsigned int airtime_weight;
  
 --- a/src/ap/wnm_ap.c
 +++ b/src/ap/wnm_ap.c
-@@ -442,7 +442,8 @@ static void ieee802_11_rx_bss_trans_mgmt
-       wpa_hexdump(MSG_DEBUG, "WNM: BSS Transition Candidate List Entries",
-                   pos, end - pos);
+@@ -455,7 +455,8 @@ static void ieee802_11_rx_bss_trans_mgmt
+               MAC2STR(addr), reason, hex ? " neighbor=" : "", hex);
+       os_free(hex);
  
 -      ieee802_11_send_bss_trans_mgmt_request(hapd, addr, dialog_token);
 +      if (!hostapd_ubus_notify_bss_transition_query(hapd, addr, dialog_token, reason, pos, end - pos))
  }
  
  
-@@ -464,7 +465,7 @@ static void ieee802_11_rx_bss_trans_mgmt
+@@ -477,7 +478,7 @@ static void ieee802_11_rx_bss_trans_mgmt
                                              size_t len)
  {
        u8 dialog_token, status_code, bss_termination_delay;
        int enabled = hapd->conf->bss_transition;
        struct sta_info *sta;
  
-@@ -511,6 +512,7 @@ static void ieee802_11_rx_bss_trans_mgmt
+@@ -524,6 +525,7 @@ static void ieee802_11_rx_bss_trans_mgmt
                        wpa_printf(MSG_DEBUG, "WNM: not enough room for Target BSSID field");
                        return;
                }
                sta->agreed_to_steer = 1;
                eloop_cancel_timeout(ap_sta_reset_steer_flag_timer, hapd, sta);
                eloop_register_timeout(2, 0, ap_sta_reset_steer_flag_timer,
-@@ -530,6 +532,10 @@ static void ieee802_11_rx_bss_trans_mgmt
+@@ -543,6 +545,10 @@ static void ieee802_11_rx_bss_trans_mgmt
                        MAC2STR(addr), status_code, bss_termination_delay);
        }
  
index e6d7c2f6738b3f45d370f86fe0015d6275017735..174127df6e117247b2c28eaff0c7f05a928f60c5 100644 (file)
@@ -1,6 +1,6 @@
 --- a/hostapd/config_file.c
 +++ b/hostapd/config_file.c
-@@ -2458,6 +2458,8 @@ static int hostapd_config_fill(struct ho
+@@ -2416,6 +2416,8 @@ static int hostapd_config_fill(struct ho
                bss->isolate = atoi(pos);
        } else if (os_strcmp(buf, "ap_max_inactivity") == 0) {
                bss->ap_max_inactivity = atoi(pos);
@@ -9,7 +9,7 @@
        } else if (os_strcmp(buf, "skip_inactivity_poll") == 0) {
                bss->skip_inactivity_poll = atoi(pos);
        } else if (os_strcmp(buf, "country_code") == 0) {
-@@ -3158,6 +3160,8 @@ static int hostapd_config_fill(struct ho
+@@ -3121,6 +3123,8 @@ static int hostapd_config_fill(struct ho
                }
        } else if (os_strcmp(buf, "acs_exclude_dfs") == 0) {
                conf->acs_exclude_dfs = atoi(pos);
@@ -20,7 +20,7 @@
        } else if (os_strcmp(buf, "channel") == 0) {
 --- a/src/ap/ap_config.c
 +++ b/src/ap/ap_config.c
-@@ -792,6 +792,7 @@ void hostapd_config_free_bss(struct host
+@@ -796,6 +796,7 @@ void hostapd_config_free_bss(struct host
        os_free(conf->radius_req_attr_sqlite);
        os_free(conf->rsn_preauth_interfaces);
        os_free(conf->ctrl_interface);
@@ -28,7 +28,7 @@
        os_free(conf->ca_cert);
        os_free(conf->server_cert);
        os_free(conf->server_cert2);
-@@ -988,6 +989,7 @@ void hostapd_config_free(struct hostapd_
+@@ -995,6 +996,7 @@ void hostapd_config_free(struct hostapd_
  
        for (i = 0; i < conf->num_bss; i++)
                hostapd_config_free_bss(conf->bss[i]);
@@ -38,7 +38,7 @@
        os_free(conf->basic_rates);
 --- a/src/ap/ap_config.h
 +++ b/src/ap/ap_config.h
-@@ -279,6 +279,8 @@ struct hostapd_bss_config {
+@@ -285,6 +285,8 @@ struct hostapd_bss_config {
        char vlan_bridge[IFNAMSIZ + 1];
        char wds_bridge[IFNAMSIZ + 1];
  
@@ -47,7 +47,7 @@
        enum hostapd_logger_level logger_syslog_level, logger_stdout_level;
  
        unsigned int logger_syslog; /* module bitfield */
-@@ -942,6 +944,7 @@ struct spatial_reuse {
+@@ -969,6 +971,7 @@ struct eht_phy_capabilities_info {
  struct hostapd_config {
        struct hostapd_bss_config **bss, *last_bss;
        size_t num_bss;
@@ -57,7 +57,7 @@
        int rts_threshold;
 --- a/src/ap/hostapd.c
 +++ b/src/ap/hostapd.c
-@@ -219,6 +219,10 @@ static int hostapd_iface_conf_changed(st
+@@ -224,6 +224,10 @@ static int hostapd_iface_conf_changed(st
  {
        size_t i;
  
@@ -68,7 +68,7 @@
        if (newconf->num_bss != oldconf->num_bss)
                return 1;
  
-@@ -232,7 +236,7 @@ static int hostapd_iface_conf_changed(st
+@@ -237,7 +241,7 @@ static int hostapd_iface_conf_changed(st
  }
  
  
@@ -77,7 +77,7 @@
  {
        struct hapd_interfaces *interfaces = iface->interfaces;
        struct hostapd_data *hapd = iface->bss[0];
-@@ -255,13 +259,16 @@ int hostapd_reload_config(struct hostapd
+@@ -260,13 +264,16 @@ int hostapd_reload_config(struct hostapd
        if (newconf == NULL)
                return -1;
  
@@ -96,7 +96,7 @@
                wpa_printf(MSG_DEBUG,
                           "Configuration changes include interface/BSS modification - force full disable+enable sequence");
                fname = os_strdup(iface->config_fname);
-@@ -286,6 +293,24 @@ int hostapd_reload_config(struct hostapd
+@@ -291,6 +298,24 @@ int hostapd_reload_config(struct hostapd
                        wpa_printf(MSG_ERROR,
                                   "Failed to enable interface on config reload");
                return res;
        }
        iface->conf = newconf;
  
-@@ -302,6 +327,12 @@ int hostapd_reload_config(struct hostapd
+@@ -307,6 +332,12 @@ int hostapd_reload_config(struct hostapd
  
        for (j = 0; j < iface->num_bss; j++) {
                hapd = iface->bss[j];
                hapd->iconf = newconf;
                hapd->conf = newconf->bss[j];
                hostapd_reload_bss(hapd);
-@@ -2397,6 +2428,10 @@ hostapd_alloc_bss_data(struct hostapd_if
+@@ -2420,6 +2451,10 @@ hostapd_alloc_bss_data(struct hostapd_if
        hapd->iconf = conf;
        hapd->conf = bss;
        hapd->iface = hapd_iface;
        hapd->ctrl_sock = -1;
 --- a/src/ap/hostapd.h
 +++ b/src/ap/hostapd.h
-@@ -46,7 +46,7 @@ struct mesh_conf;
+@@ -47,7 +47,7 @@ struct mesh_conf;
  struct hostapd_iface;
  
  struct hapd_interfaces {
        struct hostapd_config * (*config_read_cb)(const char *config_fname);
        int (*ctrl_iface_init)(struct hostapd_data *hapd);
        void (*ctrl_iface_deinit)(struct hostapd_data *hapd);
-@@ -173,6 +173,7 @@ struct hostapd_data {
+@@ -185,6 +185,7 @@ struct hostapd_data {
        struct hostapd_config *iconf;
        struct hostapd_bss_config *conf;
        struct hostapd_ubus_bss ubus;
        int interface_added; /* virtual interface added for this BSS */
        unsigned int started:1;
        unsigned int disabled:1;
-@@ -624,7 +625,7 @@ struct hostapd_iface {
+@@ -667,7 +668,7 @@ struct hostapd_iface {
  int hostapd_for_each_interface(struct hapd_interfaces *interfaces,
                               int (*cb)(struct hostapd_iface *iface,
                                         void *ctx), void *ctx);
  hostapd_alloc_bss_data(struct hostapd_iface *hapd_iface,
 --- a/src/drivers/driver_nl80211.c
 +++ b/src/drivers/driver_nl80211.c
-@@ -4833,6 +4833,9 @@ static int wpa_driver_nl80211_set_ap(voi
+@@ -4852,6 +4852,9 @@ static int wpa_driver_nl80211_set_ap(voi
        if (ret) {
                wpa_printf(MSG_DEBUG, "nl80211: Beacon set failed: %d (%s)",
                           ret, strerror(-ret));
index 856dc8ba88901bc01072045680b2511576084e79..b06ef8f68bbd2311813d1b423f9b603e26c7171e 100644 (file)
@@ -1,6 +1,6 @@
 --- a/src/ap/ap_config.h
 +++ b/src/ap/ap_config.h
-@@ -115,6 +115,7 @@ struct hostapd_ssid {
+@@ -121,6 +121,7 @@ struct hostapd_ssid {
  #define DYNAMIC_VLAN_OPTIONAL 1
  #define DYNAMIC_VLAN_REQUIRED 2
        int dynamic_vlan;
@@ -30,7 +30,7 @@
  
 --- a/hostapd/config_file.c
 +++ b/hostapd/config_file.c
-@@ -3381,6 +3381,8 @@ static int hostapd_config_fill(struct ho
+@@ -3346,6 +3346,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 a22580c357803e8937ef3ca29208fcea0a914c92..169807c61ef888014e5ba141b93a27715c17b9f5 100644 (file)
@@ -1,6 +1,6 @@
 --- a/hostapd/config_file.c
 +++ b/hostapd/config_file.c
-@@ -2358,6 +2358,8 @@ static int hostapd_config_fill(struct ho
+@@ -2316,6 +2316,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 106f9d74072621604b08e76bb911dc7e55e8f15d..ed76d22dd0b0346c5f08da295b6954962d62f610 100644 (file)
@@ -1,6 +1,6 @@
 --- a/hostapd/config_file.c
 +++ b/hostapd/config_file.c
-@@ -2880,6 +2880,14 @@ static int hostapd_config_fill(struct ho
+@@ -2841,6 +2841,14 @@ static int hostapd_config_fill(struct ho
                                   line, bss->max_num_sta, MAX_STA_COUNT);
                        return 1;
                }
        } else if (os_strcmp(buf, "extended_key_id") == 0) {
 --- a/src/ap/hostapd.h
 +++ b/src/ap/hostapd.h
-@@ -668,6 +668,7 @@ void hostapd_cleanup_cs_params(struct ho
+@@ -711,6 +711,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);
 +int hostapd_check_max_sta(struct hostapd_data *hapd);
  
- /* utils.c */
- int hostapd_register_probereq_cb(struct hostapd_data *hapd,
+ void hostapd_switch_color(struct hostapd_data *hapd, u64 bitmap);
+ void hostapd_cleanup_cca_params(struct hostapd_data *hapd);
 --- a/src/ap/hostapd.c
 +++ b/src/ap/hostapd.c
-@@ -236,6 +236,30 @@ static int hostapd_iface_conf_changed(st
+@@ -241,6 +241,30 @@ static int hostapd_iface_conf_changed(st
  }
  
  
@@ -60,7 +60,7 @@
        struct hapd_interfaces *interfaces = iface->interfaces;
 --- a/src/ap/beacon.c
 +++ b/src/ap/beacon.c
-@@ -1068,7 +1068,7 @@ void handle_probe_req(struct hostapd_dat
+@@ -1135,7 +1135,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) &&
@@ -71,7 +71,7 @@
                           " since no room for additional STA",
 --- a/src/ap/ap_config.h
 +++ b/src/ap/ap_config.h
-@@ -981,6 +981,8 @@ struct hostapd_config {
+@@ -1010,6 +1010,8 @@ struct hostapd_config {
        unsigned int track_sta_max_num;
        unsigned int track_sta_max_age;
  
index b5809222d7eb7c6a8b77d99b7dd2ba43f852922f..d9a4f15f03097c8c6907814ccb9c3d04e3e1acbd 100644 (file)
@@ -1,6 +1,6 @@
 --- a/hostapd/config_file.c
 +++ b/hostapd/config_file.c
-@@ -3038,6 +3038,8 @@ static int hostapd_config_fill(struct ho
+@@ -3000,6 +3000,8 @@ static int hostapd_config_fill(struct ho
                wpa_printf(MSG_INFO,
                           "Line %d: Obsolete peerkey parameter ignored", line);
  #ifdef CONFIG_IEEE80211R_AP
@@ -11,7 +11,7 @@
                    hexstr2bin(pos, bss->mobility_domain,
 --- a/src/ap/ap_config.h
 +++ b/src/ap/ap_config.h
-@@ -277,6 +277,7 @@ struct airtime_sta_weight {
+@@ -283,6 +283,7 @@ struct airtime_sta_weight {
  struct hostapd_bss_config {
        char iface[IFNAMSIZ + 1];
        char bridge[IFNAMSIZ + 1];
@@ -21,7 +21,7 @@
  
 --- a/src/ap/wpa_auth_glue.c
 +++ b/src/ap/wpa_auth_glue.c
-@@ -1566,8 +1566,12 @@ int hostapd_setup_wpa(struct hostapd_dat
+@@ -1595,8 +1595,12 @@ int hostapd_setup_wpa(struct hostapd_dat
            wpa_key_mgmt_ft(hapd->conf->wpa_key_mgmt)) {
                const char *ft_iface;
  
index 2ed73750ca2dccfea1e9df2b20fcf878a1927f3b..608f15a2564f091dcca0f0efe61c5092ff5e0a12 100644 (file)
@@ -1,6 +1,6 @@
 --- a/src/ap/ap_config.h
 +++ b/src/ap/ap_config.h
-@@ -278,6 +278,7 @@ struct hostapd_bss_config {
+@@ -284,6 +284,7 @@ struct hostapd_bss_config {
        char iface[IFNAMSIZ + 1];
        char bridge[IFNAMSIZ + 1];
        char ft_iface[IFNAMSIZ + 1];
@@ -10,9 +10,9 @@
  
 --- a/src/ap/x_snoop.c
 +++ b/src/ap/x_snoop.c
-@@ -31,14 +31,16 @@ int x_snoop_init(struct hostapd_data *ha
-               return -1;
-       }
+@@ -33,14 +33,16 @@ int x_snoop_init(struct hostapd_data *ha
+       hapd->x_snoop_initialized = true;
  
 -      if (hostapd_drv_br_port_set_attr(hapd, DRV_BR_PORT_ATTR_HAIRPIN_MODE,
 +      if (!conf->snoop_iface[0] &&
@@ -29,7 +29,7 @@
                wpa_printf(MSG_DEBUG,
                           "x_snoop: Failed to enable proxyarp on the bridge port");
                return -1;
-@@ -52,7 +54,8 @@ int x_snoop_init(struct hostapd_data *ha
+@@ -54,7 +56,8 @@ int x_snoop_init(struct hostapd_data *ha
        }
  
  #ifdef CONFIG_IPV6
@@ -39,7 +39,7 @@
                wpa_printf(MSG_DEBUG,
                           "x_snoop: Failed to enable multicast snooping on the bridge");
                return -1;
-@@ -71,8 +74,12 @@ x_snoop_get_l2_packet(struct hostapd_dat
+@@ -73,8 +76,12 @@ x_snoop_get_l2_packet(struct hostapd_dat
  {
        struct hostapd_bss_config *conf = hapd->conf;
        struct l2_packet_data *l2;
@@ -55,7 +55,7 @@
                           "x_snoop: Failed to initialize L2 packet processing %s",
 --- a/hostapd/config_file.c
 +++ b/hostapd/config_file.c
-@@ -2360,6 +2360,8 @@ static int hostapd_config_fill(struct ho
+@@ -2318,6 +2318,8 @@ static int hostapd_config_fill(struct ho
                os_strlcpy(bss->bridge, pos, sizeof(bss->bridge));
                if (!bss->wds_bridge[0])
                        os_strlcpy(bss->wds_bridge, pos, sizeof(bss->wds_bridge));
index ff1d076b37911e4e29195b463665ab32c38f6dae..479d5615556eae5f21c75e894ac4b25e322c3d8d 100644 (file)
@@ -1,6 +1,6 @@
 --- a/hostapd/config_file.c
 +++ b/hostapd/config_file.c
-@@ -1598,6 +1598,8 @@ static int parse_anqp_elem(struct hostap
+@@ -1602,6 +1602,8 @@ static int parse_anqp_elem(struct hostap
        return 0;
  }
  
@@ -9,7 +9,7 @@
  
  static int parse_qos_map_set(struct hostapd_bss_config *bss,
                             char *buf, int line)
-@@ -1639,8 +1641,6 @@ static int parse_qos_map_set(struct host
+@@ -1643,8 +1645,6 @@ static int parse_qos_map_set(struct host
        return 0;
  }
  
@@ -18,7 +18,7 @@
  
  #ifdef CONFIG_HS20
  static int hs20_parse_conn_capab(struct hostapd_bss_config *bss, char *buf,
-@@ -4042,10 +4042,10 @@ static int hostapd_config_fill(struct ho
+@@ -4046,10 +4046,10 @@ static int hostapd_config_fill(struct ho
                bss->gas_frag_limit = val;
        } else if (os_strcmp(buf, "gas_comeback_delay") == 0) {
                bss->gas_comeback_delay = atoi(pos);
@@ -32,7 +32,7 @@
                os_free(bss->dump_msk_file);
 --- a/src/ap/hostapd.c
 +++ b/src/ap/hostapd.c
-@@ -1423,6 +1423,7 @@ static int hostapd_setup_bss(struct host
+@@ -1424,6 +1424,7 @@ static int hostapd_setup_bss(struct host
                wpa_printf(MSG_ERROR, "GAS server initialization failed");
                return -1;
        }
@@ -40,7 +40,7 @@
  
        if (conf->qos_map_set_len &&
            hostapd_drv_set_qos_map(hapd, conf->qos_map_set,
-@@ -1430,7 +1431,6 @@ static int hostapd_setup_bss(struct host
+@@ -1431,7 +1432,6 @@ static int hostapd_setup_bss(struct host
                wpa_printf(MSG_ERROR, "Failed to initialize QoS Map");
                return -1;
        }
@@ -81,7 +81,7 @@
                           data->assoc_info.resp_ies_len, WLAN_EID_VHT_CAP))
 --- a/src/ap/ieee802_11_shared.c
 +++ b/src/ap/ieee802_11_shared.c
-@@ -1098,13 +1098,11 @@ u8 * hostapd_eid_rsnxe(struct hostapd_da
+@@ -1100,13 +1100,11 @@ u8 * hostapd_eid_rsnxe(struct hostapd_da
  u16 check_ext_capab(struct hostapd_data *hapd, struct sta_info *sta,
                    const u8 *ext_capab_ie, size_t ext_capab_ie_len)
  {
index 8af5a0a0469b6a384c1f5866a29c494d22b6fff9..d90a275233a1e27e3f83d64956d5d05b3a755293 100644 (file)
@@ -1,6 +1,6 @@
 --- a/src/ap/ap_drv_ops.c
 +++ b/src/ap/ap_drv_ops.c
-@@ -850,7 +850,8 @@ int hostapd_start_dfs_cac(struct hostapd
+@@ -864,7 +864,8 @@ int hostapd_start_dfs_cac(struct hostapd
  int hostapd_drv_set_qos_map(struct hostapd_data *hapd,
                            const u8 *qos_map_set, u8 qos_map_set_len)
  {
index 96ebdefae9e710a350fa44a359896071b142af67..1d9e9564ecfb143a0c4c9a7dc93c2047a20b7cae 100644 (file)
@@ -34,7 +34,7 @@ Signed-off-by: David Bauer <mail@david-bauer.net>
                if (!chan_bw_allowed(chan, bw, 1, 1)) {
                        wpa_printf(MSG_DEBUG,
                                   "ACS: Channel %d: BW %u is not supported",
-@@ -1065,6 +1071,9 @@ static int * acs_request_scan_add_freqs(
+@@ -1067,6 +1073,9 @@ static int * acs_request_scan_add_freqs(
                if (chan->max_tx_power < iface->conf->min_tx_power)
                        continue;
  
index 3665c6c33f7ac8b0823c8b74963b253e999ef183..e78a4ef5cff9ae9e229aa63e024ad39b88a8faca 100644 (file)
@@ -11,11 +11,9 @@ Signed-off-by: David Bauer <mail@david-bauer.net>
  wpa_supplicant/ctrl_iface.c | 4 ++--
  1 file changed, 2 insertions(+), 2 deletions(-)
 
-diff --git a/wpa_supplicant/ctrl_iface.c b/wpa_supplicant/ctrl_iface.c
-index ac337e0f5..6e23114e6 100644
 --- a/wpa_supplicant/ctrl_iface.c
 +++ b/wpa_supplicant/ctrl_iface.c
-@@ -12185,7 +12185,7 @@ char * wpa_supplicant_ctrl_iface_process(struct wpa_supplicant *wpa_s,
+@@ -12241,7 +12241,7 @@ char * wpa_supplicant_ctrl_iface_process
                if (wpas_ctrl_iface_coloc_intf_report(wpa_s, buf + 18))
                        reply_len = -1;
  #endif /* CONFIG_WNM */
@@ -24,7 +22,7 @@ index ac337e0f5..6e23114e6 100644
        } else if (os_strncmp(buf, "DISASSOC_IMMINENT ", 18) == 0) {
                if (ap_ctrl_iface_disassoc_imminent(wpa_s, buf + 18))
                        reply_len = -1;
-@@ -12195,7 +12195,7 @@ char * wpa_supplicant_ctrl_iface_process(struct wpa_supplicant *wpa_s,
+@@ -12251,7 +12251,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;
@@ -33,6 +31,3 @@ index ac337e0f5..6e23114e6 100644
        } else if (os_strcmp(buf, "FLUSH") == 0) {
                wpa_supplicant_ctrl_iface_flush(wpa_s);
        } else if (os_strncmp(buf, "RADIO_WORK ", 11) == 0) {
--- 
-2.35.1
-
diff --git a/package/network/services/hostapd/patches/991-fix-compile.patch b/package/network/services/hostapd/patches/991-fix-compile.patch
deleted file mode 100644 (file)
index d08efa0..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
---- a/wpa_supplicant/wpa_supplicant.c
-+++ b/wpa_supplicant/wpa_supplicant.c
-@@ -8104,6 +8104,7 @@ int wpas_network_disabled(struct wpa_sup
-           !ssid->mem_only_psk)
-               return 1;
-+#ifdef CONFIG_IEEE8021X_EAPOL
- #ifdef CRYPTO_RSA_OAEP_SHA256
-       if (ssid->eap.imsi_privacy_cert) {
-               struct crypto_rsa_key *key;
-@@ -8121,7 +8122,7 @@ int wpas_network_disabled(struct wpa_sup
-               }
-       }
- #endif /* CRYPTO_RSA_OAEP_SHA256 */
--
-+#endif /* CONFIG_IEEE8021X_EAPOL */
-       return 0;
- }