aboutsummaryrefslogtreecommitdiffstats
path: root/wpa_supplicant/mesh_mpm.c
diff options
context:
space:
mode:
authorBob Copeland <me@bobcopeland.com>2015-01-27 13:17:58 (GMT)
committerJouni Malinen <j@w1.fi>2015-01-28 11:09:31 (GMT)
commit41bff862d9e8d880b09590d298de377f52f0e444 (patch)
tree512d7da5f53a1756a4f1f1f5db227b448b79c1f8 /wpa_supplicant/mesh_mpm.c
parent871ff0b7466a9fa62a9980deb30949e495dea095 (diff)
downloadhostap-41bff862d9e8d880b09590d298de377f52f0e444.zip
hostap-41bff862d9e8d880b09590d298de377f52f0e444.tar.gz
hostap-41bff862d9e8d880b09590d298de377f52f0e444.tar.bz2
mesh: Always free the station if peering failed
Previously, we would only free the station entry if a peering close frame was received (freeing the station entry causes the kernel to start sending peer candidate events again when suitable beacons are received, triggering peering or authentication to restart). The end result is the same in any case regardless of close reason: if we leave holding state then peering has started again, so go ahead and remove the station in all cases. Signed-off-by: Bob Copeland <me@bobcopeland.com>
Diffstat (limited to 'wpa_supplicant/mesh_mpm.c')
-rw-r--r--wpa_supplicant/mesh_mpm.c9
1 files changed, 1 insertions, 8 deletions
diff --git a/wpa_supplicant/mesh_mpm.c b/wpa_supplicant/mesh_mpm.c
index 0da7e13..bc61da9 100644
--- a/wpa_supplicant/mesh_mpm.c
+++ b/wpa_supplicant/mesh_mpm.c
@@ -384,14 +384,7 @@ static void mesh_mpm_fsm_restart(struct wpa_supplicant *wpa_s,
eloop_cancel_timeout(plink_timer, wpa_s, sta);
- if (sta->mpm_close_reason == WLAN_REASON_MESH_CLOSE_RCVD) {
- ap_free_sta(hapd, sta);
- return;
- }
-
- wpa_mesh_set_plink_state(wpa_s, sta, PLINK_LISTEN);
- sta->my_lid = sta->peer_lid = sta->mpm_close_reason = 0;
- sta->mpm_retries = 0;
+ ap_free_sta(hapd, sta);
}