wpa_supplicant: update to version 2.11

Issue #5341.
This commit is contained in:
Josef Söntgen 2024-09-02 16:07:40 +02:00 committed by Norman Feske
parent 42dae6e570
commit 6b474e059c
5 changed files with 75 additions and 17 deletions

View File

@ -31,6 +31,7 @@ SRC_C_wpa_supplicant = bssid_ignore.c \
scan.c \
sme.c \
wmm_ac.c \
wnm_sta.c \
wpa_supplicant.c \
wpas_glue.c
#
@ -45,7 +46,7 @@ CC_OPT += -DCONFIG_BACKEND_FILE -DCONFIG_NO_CONFIG_WRITE \
-DCONFIG_SME -DCONFIG_CTRL_IFACE \
-DCONFIG_BGSCAN -DCONFIG_BGSCAN_SIMPLE \
-DCONFIG_OPENSSL_CMAC -DCONFIG_SHA256 \
-DCONFIG_SAE -DCONFIG_ECC
-DCONFIG_SAE -DCONFIG_ECC -DCONFIG_WNM
CC_OPT += -DTLS_DEFAULT_CIPHERS=\"DEFAULT:!EXP:!LOW\"
@ -53,7 +54,7 @@ INC_DIR += $(WS_CONTRIB_DIR)/src/
# common
SRC_C_common = ieee802_11_common.c wpa_common.c hw_features_common.c \
ctrl_iface_common.c sae.c dragonfly.c
ctrl_iface_common.c sae.c dragonfly.c ptksa_cache.c
SRC_C += $(addprefix src/common/, $(SRC_C_common))
INC_DIR += $(WS_CONTRIB_DIR)/src/common

View File

@ -1,8 +1,38 @@
diff --git a/src/drivers/driver_nl80211.c b/src/drivers/driver_nl80211.c
index aec179a..6c07c73 100644
The nl80211 driver patch contains the following changes:
- Convert inline error values from Linux to libc (FreeBSD) as otherwise
wpa_supplicant might come to the wrong conclusions.
- Show RFKILL operations at INFO level (so that the always appear in the
log) and generate a interface dis-/enable event that will be handled
by the management layer.
- Remove netlink messages that rely on newer libnl versions, e.g. signed
value where introduced in 3.2.27.
- Hardcode the I/O control socket rather than calling socket because it
is not used anyway (see wpa_driver_nl80211/ioctl.cc).
--- a/src/drivers/driver_nl80211.c
+++ b/src/drivers/driver_nl80211.c
@@ -1985,13 +1985,13 @@ static void wpa_driver_nl80211_rfkill_blocked(void *ctx)
+++ a/src/drivers/driver_nl80211.c
@@ -487,6 +487,8 @@
}
+extern int convert_errno_from_linux(int linux_errno);
+
int send_and_recv(struct nl80211_global *global,
struct nl_sock *nl_handle, struct nl_msg *msg,
int (*valid_handler)(struct nl_msg *, void *),
@@ -579,7 +581,7 @@
/* Always clear the message as it can potentially contain keys */
nl80211_nlmsg_clear(msg);
nlmsg_free(msg);
- return err.err;
+ return convert_errno_from_linux(err.err);
}
@@ -2088,13 +2090,13 @@
{
struct wpa_driver_nl80211_data *drv = ctx;
@ -18,7 +48,7 @@ index aec179a..6c07c73 100644
wpa_supplicant_event(drv->ctx, EVENT_INTERFACE_DISABLED, NULL);
}
@@ -1999,7 +1999,7 @@ static void wpa_driver_nl80211_rfkill_blocked(void *ctx)
@@ -2102,7 +2104,7 @@
static void wpa_driver_nl80211_rfkill_unblocked(void *ctx)
{
struct wpa_driver_nl80211_data *drv = ctx;
@ -27,7 +57,7 @@ index aec179a..6c07c73 100644
if (i802_set_iface_flags(drv->first_bss, 1)) {
wpa_printf(MSG_DEBUG, "nl80211: Could not set interface UP "
"after rfkill unblock");
@@ -2013,7 +2013,7 @@ static void wpa_driver_nl80211_rfkill_unblocked(void *ctx)
@@ -2116,7 +2118,7 @@
* rtnetlink ifup handler will report interfaces other than the P2P
* Device interface as enabled.
*/
@ -36,7 +66,29 @@ index aec179a..6c07c73 100644
wpa_supplicant_event(drv->ctx, EVENT_INTERFACE_ENABLED, NULL);
}
@@ -8709,7 +8709,7 @@ static void * nl80211_global_init(void *ctx)
@@ -7826,7 +7828,7 @@
[NL80211_STA_INFO_BEACON_SIGNAL_AVG] = { .type = NLA_U8},
[NL80211_STA_INFO_RX_DURATION] = { .type = NLA_U64 },
[NL80211_STA_INFO_ACK_SIGNAL] = { .type = NLA_U8 },
- [NL80211_STA_INFO_ACK_SIGNAL_AVG] = { .type = NLA_S8 },
+ [NL80211_STA_INFO_ACK_SIGNAL_AVG] = { .type = NLA_U8 },
[NL80211_STA_INFO_RX_MPDUS] = { .type = NLA_U32 },
[NL80211_STA_INFO_FCS_ERROR_COUNT] = { .type = NLA_U32 },
[NL80211_STA_INFO_TX_DURATION] = { .type = NLA_U64 },
@@ -7930,9 +7932,9 @@
nla_get_u8(stats[NL80211_STA_INFO_ACK_SIGNAL]);
data->flags |= STA_DRV_DATA_LAST_ACK_RSSI;
}
- if (stats[NL80211_STA_INFO_ACK_SIGNAL_AVG])
- data->avg_ack_signal =
- nla_get_s8(stats[NL80211_STA_INFO_ACK_SIGNAL_AVG]);
+ // if (stats[NL80211_STA_INFO_ACK_SIGNAL_AVG])
+ // data->avg_ack_signal =
+ // nla_get_s8(stats[NL80211_STA_INFO_ACK_SIGNAL_AVG]);
if (stats[NL80211_STA_INFO_RX_MPDUS])
data->rx_mpdus = nla_get_u32(stats[NL80211_STA_INFO_RX_MPDUS]);
if (stats[NL80211_STA_INFO_FCS_ERROR_COUNT])
@@ -9939,7 +9941,7 @@
if (wpa_driver_nl80211_init_nl_global(global) < 0)
goto err;

View File

@ -1 +1 @@
6242912dd6f6c22550a7fe0b443bfd80c5cfedae
aa7af61abdac82e5a783d8371be9cb8d1a41fceb

View File

@ -1,12 +1,12 @@
LICENSE := BSD-3-Clause
VERSION := 2.10
VERSION := 2.11
DOWNLOADS := wpa_supplicant.archive
#
# wpa_supplicant sources
#
URL(wpa_supplicant) := https://w1.fi/releases/wpa_supplicant-2.10.tar.gz
SHA(wpa_supplicant) := 20df7ae5154b3830355f8ab4269123a87affdea59fe74fe9292a91d0d7e17b2f
URL(wpa_supplicant) := https://w1.fi/releases/wpa_supplicant-2.11.tar.gz
SHA(wpa_supplicant) := 912ea06f74e30a8e36fbb68064d6cdff218d8d591db0fc5d75dee6c81ac7fc0a
DIR(wpa_supplicant) := src/app/wpa_supplicant
#

View File

@ -11,17 +11,22 @@
/* needed by wpa_driver_nl80211 */
__hide_aliasing_typecast;
channel_width_to_int;
eloop_*;
fc2str*;
get_hdr_bssid;
get_ie*;
get_ml_ie;
ieee80211_freq_to_chan;
ieee80211_radiotap_*;
ieee802_11_defrag;
ieee802_11_parse_elems;
is_6ghz_freq;
is_same_band;
os_*;
sha1_vector*;
wpa_*;
wpabuf_*;
sha1_vector*;
get_ie*;
fc2str*;
is_6ghz_freq;
local: