mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-30 18:47:06 +00:00
35 lines
1.2 KiB
Diff
35 lines
1.2 KiB
Diff
|
From: Felix Fietkau <nbd@nbd.name>
|
||
|
Date: Mon, 18 Feb 2019 12:57:11 +0100
|
||
|
Subject: [PATCH] mesh: allow processing authentication frames in blocked state
|
||
|
|
||
|
If authentication fails repeatedly e.g. because of a weak signal, the link
|
||
|
can end up in blocked state. If one of the nodes tries to establish a link
|
||
|
again before it is unblocked on the other side, it will block the link to
|
||
|
that other side. The same happens on the other side when it unblocks the
|
||
|
link. In that scenario, the link never recovers on its own.
|
||
|
|
||
|
To fix this, allow restarting authentication even if the link is in blocked
|
||
|
state, but don't initiate the attempt until the blocked period is over.
|
||
|
|
||
|
Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||
|
---
|
||
|
|
||
|
--- a/src/ap/ieee802_11.c
|
||
|
+++ b/src/ap/ieee802_11.c
|
||
|
@@ -2527,15 +2527,6 @@ static void handle_auth(struct hostapd_d
|
||
|
seq_ctrl);
|
||
|
return;
|
||
|
}
|
||
|
-#ifdef CONFIG_MESH
|
||
|
- if ((hapd->conf->mesh & MESH_ENABLED) &&
|
||
|
- sta->plink_state == PLINK_BLOCKED) {
|
||
|
- wpa_printf(MSG_DEBUG, "Mesh peer " MACSTR
|
||
|
- " is blocked - drop Authentication frame",
|
||
|
- MAC2STR(mgmt->sa));
|
||
|
- return;
|
||
|
- }
|
||
|
-#endif /* CONFIG_MESH */
|
||
|
} else {
|
||
|
#ifdef CONFIG_MESH
|
||
|
if (hapd->conf->mesh & MESH_ENABLED) {
|