Parcourir la source

P2P: Skip non-P2P interface in p2p_group_remove *

When 'p2p_group_remove *' is called while the station interface
is connected, the flow also disconnects the station interface.
Fix this by skipping non-P2P interfaces in the iteration.

Signed-hostap: Ilan Peer <ilan.peer@intel.com>
Ilan Peer il y a 11 ans
Parent
commit
d99ca89d98
1 fichiers modifiés avec 5 ajouts et 1 suppressions
  1. 5 1
      wpa_supplicant/p2p_supplicant.c

+ 5 - 1
wpa_supplicant/p2p_supplicant.c

@@ -4133,7 +4133,11 @@ int wpas_p2p_group_remove(struct wpa_supplicant *wpa_s, const char *ifname)
 		while (wpa_s) {
 			prev = wpa_s;
 			wpa_s = wpa_s->next;
-			wpas_p2p_disconnect(prev);
+			if (prev->p2p_group_interface !=
+			    NOT_P2P_GROUP_INTERFACE ||
+			    (prev->current_ssid &&
+			     prev->current_ssid->p2p_group))
+				wpas_p2p_disconnect(prev);
 		}
 		return 0;
 	}