mesh: Fix peer link counting when removing a mesh peer
When removing a mesh peer with control interface commands (ACCEPT_ACL DEL_MAC/DENY_ACL ADD_MAC/MESH_PEER_REMOVE) the plink count was not decreased from its last connection. This resulted in peer link count leakage and wpa_supplicant rejecting the connections after reaching max_peer_links (default: 99). Fix this by decreasing the plink count when removing a mesh peer which is in PLINK_ESTAB state. Signed-off-by: Yu Wang <yyuwang@codeaurora.org>
This commit is contained in:
parent
4df892c781
commit
885097125c
1 changed files with 2 additions and 0 deletions
|
@ -533,6 +533,8 @@ static int mesh_mpm_plink_close(struct hostapd_data *hapd, struct sta_info *sta,
|
||||||
int reason = WLAN_REASON_MESH_PEERING_CANCELLED;
|
int reason = WLAN_REASON_MESH_PEERING_CANCELLED;
|
||||||
|
|
||||||
if (sta) {
|
if (sta) {
|
||||||
|
if (sta->plink_state == PLINK_ESTAB)
|
||||||
|
hapd->num_plinks--;
|
||||||
wpa_mesh_set_plink_state(wpa_s, sta, PLINK_HOLDING);
|
wpa_mesh_set_plink_state(wpa_s, sta, PLINK_HOLDING);
|
||||||
mesh_mpm_send_plink_action(wpa_s, sta, PLINK_CLOSE, reason);
|
mesh_mpm_send_plink_action(wpa_s, sta, PLINK_CLOSE, reason);
|
||||||
wpa_printf(MSG_DEBUG, "MPM closing plink sta=" MACSTR,
|
wpa_printf(MSG_DEBUG, "MPM closing plink sta=" MACSTR,
|
||||||
|
|
Loading…
Reference in a new issue