P2PS: Start WPS registrar upon GO formation
If P2PS config method is used for provisioning, upon forming a new GO, start WPS registrar for the provisioned peer automatically. Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
This commit is contained in:
parent
9e96e46456
commit
306aaf49f8
2 changed files with 25 additions and 0 deletions
|
@ -1665,6 +1665,16 @@ static void p2p_go_configured(void *ctx, void *data)
|
||||||
params->persistent_group, "");
|
params->persistent_group, "");
|
||||||
wpa_s->group_formation_reported = 1;
|
wpa_s->group_formation_reported = 1;
|
||||||
|
|
||||||
|
if (wpa_s->parent->p2ps_join_addr_valid) {
|
||||||
|
wpa_dbg(wpa_s, MSG_DEBUG,
|
||||||
|
"P2PS: Setting default PIN for " MACSTR,
|
||||||
|
MAC2STR(wpa_s->parent->p2ps_join_addr));
|
||||||
|
wpa_supplicant_ap_wps_pin(wpa_s,
|
||||||
|
wpa_s->parent->p2ps_join_addr,
|
||||||
|
"12345670", NULL, 0, 0);
|
||||||
|
wpa_s->parent->p2ps_join_addr_valid = 0;
|
||||||
|
}
|
||||||
|
|
||||||
os_get_reltime(&wpa_s->global->p2p_go_wait_client);
|
os_get_reltime(&wpa_s->global->p2p_go_wait_client);
|
||||||
if (params->persistent_group) {
|
if (params->persistent_group) {
|
||||||
network_id = wpas_p2p_store_persistent_group(
|
network_id = wpas_p2p_store_persistent_group(
|
||||||
|
@ -4939,6 +4949,14 @@ static void wpas_p2ps_prov_complete(void *ctx, u8 status, const u8 *dev,
|
||||||
} else if (response_done) {
|
} else if (response_done) {
|
||||||
wpas_p2p_group_add(wpa_s, 1, 0, 0, 0);
|
wpas_p2p_group_add(wpa_s, 1, 0, 0, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (passwd_id == DEV_PW_P2PS_DEFAULT) {
|
||||||
|
os_memcpy(wpa_s->p2ps_join_addr, dev, ETH_ALEN);
|
||||||
|
wpa_s->p2ps_join_addr_valid = 1;
|
||||||
|
wpa_dbg(wpa_s, MSG_DEBUG,
|
||||||
|
"P2PS: Saving PIN for " MACSTR,
|
||||||
|
MAC2STR(dev));
|
||||||
|
}
|
||||||
} else if (passwd_id == DEV_PW_P2PS_DEFAULT) {
|
} else if (passwd_id == DEV_PW_P2PS_DEFAULT) {
|
||||||
go_ifname = go_wpa_s->ifname;
|
go_ifname = go_wpa_s->ifname;
|
||||||
|
|
||||||
|
@ -4946,6 +4964,11 @@ static void wpas_p2ps_prov_complete(void *ctx, u8 status, const u8 *dev,
|
||||||
"P2P: Setting PIN-1 For " MACSTR, MAC2STR(dev));
|
"P2P: Setting PIN-1 For " MACSTR, MAC2STR(dev));
|
||||||
wpa_supplicant_ap_wps_pin(go_wpa_s, dev, "12345670",
|
wpa_supplicant_ap_wps_pin(go_wpa_s, dev, "12345670",
|
||||||
NULL, 0, 0);
|
NULL, 0, 0);
|
||||||
|
|
||||||
|
os_memcpy(wpa_s->p2ps_join_addr, dev, ETH_ALEN);
|
||||||
|
wpa_s->p2ps_join_addr_valid = 1;
|
||||||
|
wpa_dbg(wpa_s, MSG_DEBUG,
|
||||||
|
"P2PS: Saving PIN for " MACSTR, MAC2STR(dev));
|
||||||
}
|
}
|
||||||
|
|
||||||
wpa_msg_global(wpa_s, MSG_INFO,
|
wpa_msg_global(wpa_s, MSG_INFO,
|
||||||
|
|
|
@ -811,6 +811,7 @@ struct wpa_supplicant {
|
||||||
unsigned int p2p_nfc_tag_enabled:1;
|
unsigned int p2p_nfc_tag_enabled:1;
|
||||||
unsigned int p2p_peer_oob_pk_hash_known:1;
|
unsigned int p2p_peer_oob_pk_hash_known:1;
|
||||||
unsigned int p2p_disable_ip_addr_req:1;
|
unsigned int p2p_disable_ip_addr_req:1;
|
||||||
|
unsigned int p2ps_join_addr_valid:1;
|
||||||
int p2p_persistent_go_freq;
|
int p2p_persistent_go_freq;
|
||||||
int p2p_persistent_id;
|
int p2p_persistent_id;
|
||||||
int p2p_go_intent;
|
int p2p_go_intent;
|
||||||
|
@ -830,6 +831,7 @@ struct wpa_supplicant {
|
||||||
/* group common frequencies */
|
/* group common frequencies */
|
||||||
int *p2p_group_common_freqs;
|
int *p2p_group_common_freqs;
|
||||||
unsigned int p2p_group_common_freqs_num;
|
unsigned int p2p_group_common_freqs_num;
|
||||||
|
u8 p2ps_join_addr[ETH_ALEN];
|
||||||
#endif /* CONFIG_P2P */
|
#endif /* CONFIG_P2P */
|
||||||
|
|
||||||
struct wpa_ssid *bgscan_ssid;
|
struct wpa_ssid *bgscan_ssid;
|
||||||
|
|
Loading…
Reference in a new issue