diff --git a/pkgs/by-name/wp/wpa_supplicant/package.nix b/pkgs/by-name/wp/wpa_supplicant/package.nix index 26a57bb38bbc..49f144995205 100644 --- a/pkgs/by-name/wp/wpa_supplicant/package.nix +++ b/pkgs/by-name/wp/wpa_supplicant/package.nix @@ -28,6 +28,7 @@ stdenv.mkDerivation (finalAttrs: { patches = [ ./multiple-configs.patch + ./revert-change-breaking-auth-broadcom.patch ] ++ lib.optional unprivileged ./unprivileged-daemon.patch; diff --git a/pkgs/by-name/wp/wpa_supplicant/revert-change-breaking-auth-broadcom.patch b/pkgs/by-name/wp/wpa_supplicant/revert-change-breaking-auth-broadcom.patch new file mode 100644 index 000000000000..587716df234e --- /dev/null +++ b/pkgs/by-name/wp/wpa_supplicant/revert-change-breaking-auth-broadcom.patch @@ -0,0 +1,47 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Janne Grunau +Date: Sun, 4 Aug 2024 13:24:42 +0200 +Subject: [PATCH] Revert "Mark authorization completed on driver indication + during 4-way HS offload" + +This reverts commit 41638606054a09867fe3f9a2b5523aa4678cbfa5. +--- + wpa_supplicant/events.c | 25 ++++++++----------------- + 1 file changed, 8 insertions(+), 17 deletions(-) + +diff --git a/wpa_supplicant/events.c b/wpa_supplicant/events.c +index 4f85da193608..919a0732b813 100644 +--- a/wpa_supplicant/events.c ++++ b/wpa_supplicant/events.c +@@ -4925,23 +4925,14 @@ static int wpa_supplicant_event_assoc(struct wpa_supplicant *wpa_s, + wpa_key_mgmt_wpa_psk(wpa_s->key_mgmt)) || + ((wpa_s->drv_flags2 & WPA_DRIVER_FLAGS2_OWE_OFFLOAD_STA) && + wpa_s->key_mgmt == WPA_KEY_MGMT_OWE)) { +- if (already_authorized) { +- /* +- * We are done; the driver will take care of RSN 4-way +- * handshake. +- */ +- wpa_supplicant_cancel_auth_timeout(wpa_s); +- wpa_supplicant_set_state(wpa_s, WPA_COMPLETED); +- eapol_sm_notify_portValid(wpa_s->eapol, true); +- eapol_sm_notify_eap_success(wpa_s->eapol, true); +- } else { +- /* Update port, WPA_COMPLETED state from the +- * EVENT_PORT_AUTHORIZED handler when the driver is done +- * with the 4-way handshake. +- */ +- wpa_msg(wpa_s, MSG_DEBUG, +- "ASSOC INFO: wait for driver port authorized indication"); +- } ++ /* ++ * We are done; the driver will take care of RSN 4-way ++ * handshake. ++ */ ++ wpa_supplicant_cancel_auth_timeout(wpa_s); ++ wpa_supplicant_set_state(wpa_s, WPA_COMPLETED); ++ eapol_sm_notify_portValid(wpa_s->eapol, true); ++ eapol_sm_notify_eap_success(wpa_s->eapol, true); + } else if ((wpa_s->drv_flags & WPA_DRIVER_FLAGS_4WAY_HANDSHAKE_8021X) && + wpa_key_mgmt_wpa_ieee8021x(wpa_s->key_mgmt)) { + /*