P2PS: Cleanup pending_p2ps_group flag
pending_p2ps_group flag is not always cleaned, which may later result in an unexpected GO bring up, after PD response is transmitted in wpas_prov_disc_resp_cb(). This can be seen when running the following hwsim tests together: - p2ps_channel_sta_connected_disallow_freq_mcc - p2ps_channel_active_go_and_station_different_mcc Fix this by clearing pending_p2ps_group flag also when processing new PD requests. In addition, set this flag only when really needed. Signed-off-by: Andrei Otcheretianski <andrei.otcheretianski@intel.com>
This commit is contained in:
parent
0be8b9238f
commit
710c692381
1 changed files with 7 additions and 2 deletions
|
@ -4188,6 +4188,9 @@ static void wpas_p2ps_prov_complete(void *ctx, u8 status, const u8 *dev,
|
|||
return;
|
||||
}
|
||||
|
||||
wpa_s->global->pending_p2ps_group = 0;
|
||||
wpa_s->global->pending_p2ps_group_freq = 0;
|
||||
|
||||
if (conncap == P2PS_SETUP_GROUP_OWNER) {
|
||||
/*
|
||||
* We need to copy the interface name. Simply saving a
|
||||
|
@ -4198,8 +4201,10 @@ static void wpas_p2ps_prov_complete(void *ctx, u8 status, const u8 *dev,
|
|||
|
||||
go_ifname[0] = '\0';
|
||||
if (!go_wpa_s) {
|
||||
wpa_s->global->pending_p2ps_group = 1;
|
||||
wpa_s->global->pending_p2ps_group_freq = freq;
|
||||
if (!response_done) {
|
||||
wpa_s->global->pending_p2ps_group = 1;
|
||||
wpa_s->global->pending_p2ps_group_freq = freq;
|
||||
}
|
||||
|
||||
if (!wpas_p2p_create_iface(wpa_s))
|
||||
os_memcpy(go_ifname, wpa_s->ifname,
|
||||
|
|
Loading…
Reference in a new issue