aboutsummaryrefslogtreecommitdiffstats
path: root/package/network/services/hostapd/patches/130-wpa_supplicant-multi_ap_roam.patch
blob: fd3017af92229fac182a149cb52897005f3bb676 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
From 8a4893dd06eb236460db4937f3c54e246739ad28 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Rapha=C3=ABl=20M=C3=A9lotte?= <raphael.melotte@mind.be>
Date: Wed, 3 Feb 2021 14:23:17 +0100
Subject: [PATCH] wpa_supplicant: multi_ap: only enable 4addr mode if not
 already enabled
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

If 4addr mode is already enabled, the call to enable it a second time
may fail. If this happens when roaming, it leads to deauthentication.

Signed-off-by: Raphaël Mélotte <raphael.melotte@mind.be>
---
 wpa_supplicant/events.c | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

--- a/wpa_supplicant/events.c
+++ b/wpa_supplicant/events.c
@@ -2589,11 +2589,13 @@ static void multi_ap_set_4addr_mode(stru
 		goto fail;
 	}
 
-	if (wpa_drv_set_4addr_mode(wpa_s, 1) < 0) {
-		wpa_printf(MSG_ERROR, "Failed to set 4addr mode");
-		goto fail;
+	if (wpa_s->enabled_4addr_mode == 0) {
+		if (wpa_drv_set_4addr_mode(wpa_s, 1) < 0) {
+			wpa_printf(MSG_ERROR, "Failed to set 4addr mode");
+			goto fail;
+		}
+		wpa_s->enabled_4addr_mode = 1;
 	}
-	wpa_s->enabled_4addr_mode = 1;
 	return;
 
 fail: