P2P: Fix p2p_group_idle in no-group-interface P2P client case
Commit30ee769235
started skipping P2P group removal if wpa_s->current_ssid is not set and commit0d30cc240f
started clearing wpa_s->current_ssid on disconnection. This combination broke p2p_group_idle timeout on P2P client interface in a case where no separate P2P group interface is used and when the disconnection is triggered by something else than an explicit indication of GO terminating the group. Fix this by relaxing network block matching rules when figuring out whether any of the configured network blocks could be in P2P use. The p2p_group flag alone should be enough for this since temporary P2P group network blocks are removed once the P2P group is terminated. Signed-hostap: Jouni Malinen <j@w1.fi>
This commit is contained in:
parent
8c981d179b
commit
0c802384a7
1 changed files with 3 additions and 4 deletions
|
@ -255,13 +255,12 @@ static int wpas_p2p_group_delete(struct wpa_supplicant *wpa_s,
|
||||||
if (ssid == NULL) {
|
if (ssid == NULL) {
|
||||||
/*
|
/*
|
||||||
* The current SSID was not known, but there may still be a
|
* The current SSID was not known, but there may still be a
|
||||||
* pending P2P group interface waiting for provisioning.
|
* pending P2P group interface waiting for provisioning or a
|
||||||
|
* P2P group that is trying to reconnect.
|
||||||
*/
|
*/
|
||||||
ssid = wpa_s->conf->ssid;
|
ssid = wpa_s->conf->ssid;
|
||||||
while (ssid) {
|
while (ssid) {
|
||||||
if (ssid->p2p_group &&
|
if (ssid->p2p_group)
|
||||||
(ssid->mode == WPAS_MODE_P2P_GROUP_FORMATION ||
|
|
||||||
(ssid->key_mgmt & WPA_KEY_MGMT_WPS)))
|
|
||||||
break;
|
break;
|
||||||
ssid = ssid->next;
|
ssid = ssid->next;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue