P2P: Support dynamic addition of P2P Device triggering interface

This moves the addition of P2P Device interface into
wpa_supplicant_add_iface() so that this operation can be done
dynamically when adding an interface to an already running
wpa_supplicant process.

Signed-off-by: Jouni Malinen <j@w1.fi>
This commit is contained in:
Jouni Malinen 2014-10-20 12:42:27 +03:00
parent 26fc96e89b
commit c3c4b3ed3b
2 changed files with 10 additions and 8 deletions

View file

@ -327,14 +327,6 @@ int main(int argc, char *argv[])
exitcode = -1; exitcode = -1;
break; break;
} }
#ifdef CONFIG_P2P
if (wpa_s->global->p2p == NULL &&
(wpa_s->drv_flags &
WPA_DRIVER_FLAGS_DEDICATED_P2P_DEVICE) &&
wpas_p2p_add_p2pdev_interface(wpa_s, iface->conf_p2p_dev) <
0)
exitcode = -1;
#endif /* CONFIG_P2P */
} }
if (exitcode == 0) if (exitcode == 0)

View file

@ -4028,6 +4028,16 @@ struct wpa_supplicant * wpa_supplicant_add_iface(struct wpa_global *global,
wpa_dbg(wpa_s, MSG_DEBUG, "Added interface %s", wpa_s->ifname); wpa_dbg(wpa_s, MSG_DEBUG, "Added interface %s", wpa_s->ifname);
wpa_supplicant_set_state(wpa_s, WPA_DISCONNECTED); wpa_supplicant_set_state(wpa_s, WPA_DISCONNECTED);
#ifdef CONFIG_P2P
if (wpa_s->global->p2p == NULL &&
(wpa_s->drv_flags & WPA_DRIVER_FLAGS_DEDICATED_P2P_DEVICE) &&
wpas_p2p_add_p2pdev_interface(wpa_s, iface->conf_p2p_dev) < 0) {
wpa_printf(MSG_INFO,
"P2P: Failed to enable P2P Device interface");
/* Try to continue without. P2P will be disabled. */
}
#endif /* CONFIG_P2P */
return wpa_s; return wpa_s;
} }