P2P: Trigger event when invitation is accepted
Trigger an event when wpa_supplicant accepts an invitation to re-invoke a persistent group. Previously wpa_supplicant entered group formation without triggering any specific events and it could confuse clients, especially when operating with a driver that does not support concurrency between P2P and infrastructure connection. Signed-off-by: Lior David <qca_liord@qca.qualcomm.com>
This commit is contained in:
parent
bd86ea0808
commit
0ee8925098
2 changed files with 20 additions and 0 deletions
|
@ -187,6 +187,7 @@ extern "C" {
|
|||
#define P2P_EVENT_SERV_ASP_RESP "P2P-SERV-ASP-RESP "
|
||||
#define P2P_EVENT_INVITATION_RECEIVED "P2P-INVITATION-RECEIVED "
|
||||
#define P2P_EVENT_INVITATION_RESULT "P2P-INVITATION-RESULT "
|
||||
#define P2P_EVENT_INVITATION_ACCEPTED "P2P-INVITATION-ACCEPTED "
|
||||
#define P2P_EVENT_FIND_STOPPED "P2P-FIND-STOPPED "
|
||||
#define P2P_EVENT_PERSISTENT_PSK_FAIL "P2P-PERSISTENT-PSK-FAIL id="
|
||||
#define P2P_EVENT_PRESENCE_RESPONSE "P2P-PRESENCE-RESPONSE "
|
||||
|
|
|
@ -3018,12 +3018,31 @@ static void wpas_invitation_received(void *ctx, const u8 *sa, const u8 *bssid,
|
|||
MAC2STR(sa), op_freq, wpa_ssid_txt(ssid, ssid_len));
|
||||
if (s) {
|
||||
int go = s->mode == WPAS_MODE_P2P_GO;
|
||||
if (go) {
|
||||
wpa_msg_global(wpa_s, MSG_INFO,
|
||||
P2P_EVENT_INVITATION_ACCEPTED
|
||||
"sa=" MACSTR
|
||||
" persistent=%d freq=%d",
|
||||
MAC2STR(sa), s->id, op_freq);
|
||||
} else {
|
||||
wpa_msg_global(wpa_s, MSG_INFO,
|
||||
P2P_EVENT_INVITATION_ACCEPTED
|
||||
"sa=" MACSTR
|
||||
" persistent=%d",
|
||||
MAC2STR(sa), s->id);
|
||||
}
|
||||
wpas_p2p_group_add_persistent(
|
||||
wpa_s, s, go, 0, op_freq, 0, 0, 0, 0, NULL,
|
||||
go ? P2P_MAX_INITIAL_CONN_WAIT_GO_REINVOKE : 0,
|
||||
1);
|
||||
} else if (bssid) {
|
||||
wpa_s->user_initiated_pd = 0;
|
||||
wpa_msg_global(wpa_s, MSG_INFO,
|
||||
P2P_EVENT_INVITATION_ACCEPTED
|
||||
"sa=" MACSTR " go_dev_addr=" MACSTR
|
||||
" bssid=" MACSTR " unknown-network",
|
||||
MAC2STR(sa), MAC2STR(go_dev_addr),
|
||||
MAC2STR(bssid));
|
||||
wpas_p2p_join(wpa_s, bssid, go_dev_addr,
|
||||
wpa_s->p2p_wps_method, 0, op_freq,
|
||||
ssid, ssid_len);
|
||||
|
|
Loading…
Reference in a new issue