diff mbox

[1/2] mesh: always free the station if peering failed

Message ID 1422364679-20465-1-git-send-email-me@bobcopeland.com
State Accepted
Headers show

Commit Message

Bob Copeland Jan. 27, 2015, 1:17 p.m. UTC
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>
---
 wpa_supplicant/mesh_mpm.c | 9 +--------
 1 file changed, 1 insertion(+), 8 deletions(-)

Comments

Jouni Malinen Jan. 28, 2015, 11:15 a.m. UTC | #1
On Tue, Jan 27, 2015 at 08:17:58AM -0500, Bob Copeland wrote:
> 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.

Thanks, both patches applied.
diff mbox

Patch

diff --git a/wpa_supplicant/mesh_mpm.c b/wpa_supplicant/mesh_mpm.c
index 4a259ff..e0090fb 100644
--- a/wpa_supplicant/mesh_mpm.c
+++ b/wpa_supplicant/mesh_mpm.c
@@ -379,14 +379,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);
 }