| 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 |
| @@ -3781,15 +3781,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 */ |
| #ifdef CONFIG_PASN |
| if (auth_alg == WLAN_AUTH_PASN && |
| (sta->flags & WLAN_STA_ASSOC)) { |