wpa_supplicant: Send P2P mgmt iface add/remove notifications
wpa_supplicant has 2 different |wpa_supplicant| structure entries in
|global->ifaces| for the virtual p2p interface (wpa_s->p2p_mgmt == 1)
and the underlying station mode interface.
However, the control IPC's (dbus, hidl) are not currently
notified about the addition of the virtual p2p interface because of the
|if (wpa_s->p2p_mgmt == 0)| check in |wpa_supplicant_add_iface|.
For the dbus control, we didn't want to track the existence of 2
separate ifaces (always used global->p2p_init_wpa_s| to reach the P2P
iface. But for HIDL control, we want to expose the P2P iface object
when the corresponding |wpa_supplicant| entry is added to
|global->ifaces|.
So, send notifications to indicate the addition/removal of
the p2p mgmt iface to HIDL.
Test: Compiles
Bug: 31497295
Change-Id: Iad63521565f58e2e1ec871046d0b0d65f271486e
diff --git a/wpa_supplicant/wpa_supplicant.c b/wpa_supplicant/wpa_supplicant.c
index 25ec502..8cfb488 100644
--- a/wpa_supplicant/wpa_supplicant.c
+++ b/wpa_supplicant/wpa_supplicant.c
@@ -5225,13 +5225,15 @@
return NULL;
}
- if (iface->p2p_mgmt == 0) {
- /* Notify the control interfaces about new iface */
- if (wpas_notify_iface_added(wpa_s)) {
- wpa_supplicant_deinit_iface(wpa_s, 1, 0);
- return NULL;
- }
+ /* Notify the control interfaces about new iface */
+ if (wpas_notify_iface_added(wpa_s)) {
+ wpa_supplicant_deinit_iface(wpa_s, 1, 0);
+ return NULL;
+ }
+ /* Notify the control interfaces about new networks for non p2p mgmt
+ * ifaces. */
+ if (iface->p2p_mgmt == 0) {
for (ssid = wpa_s->conf->ssid; ssid; ssid = ssid->next)
wpas_notify_network_added(wpa_s, ssid);
}