]> git.ipfire.org Git - thirdparty/hostap.git/commitdiff
P2P: Request fresh scan results after GO Negotiation
authorJouni Malinen <jouni@qca.qualcomm.com>
Fri, 21 Aug 2015 15:40:23 +0000 (18:40 +0300)
committerJouni Malinen <j@w1.fi>
Fri, 21 Aug 2015 21:22:12 +0000 (00:22 +0300)
The P2P group is not yet operating when going through GO Negotiation
exchange. Previously, an old cached scan result could be used to skip
the scan immediately after the GO Negotiation. While this is quite
unlikely to happen in practice, we can easily force a scan here now with
the generic scan_min_time mechanism. Do that to avoid any corner cases
that a previous instance of the group could have if found in cached scan
results.

Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
wpa_supplicant/p2p_supplicant.c

index 2633ccaf2b0e2dcc3f15592f830cff57513c2848..d1e7bae1e25aef19828b0321a7ccd0fb75f98d47 100644 (file)
@@ -2171,18 +2171,22 @@ static void wpas_go_neg_completed(void *ctx, struct p2p_go_neg_results *res)
                wpa_s->pending_interface_name[0] = '\0';
                group_wpa_s->p2p_in_provisioning = 1;
 
-               if (res->role_go)
+               if (res->role_go) {
                        wpas_start_wps_go(group_wpa_s, res, 1);
-               else
+               } else {
+                       os_get_reltime(&group_wpa_s->scan_min_time);
                        wpas_start_wps_enrollee(group_wpa_s, res);
+               }
        } else {
                wpa_s->p2p_in_provisioning = 1;
                wpa_s->global->p2p_group_formation = wpa_s;
 
-               if (res->role_go)
+               if (res->role_go) {
                        wpas_start_wps_go(wpa_s, res, 1);
-               else
+               } else {
+                       os_get_reltime(&wpa_s->scan_min_time);
                        wpas_start_wps_enrollee(ctx, res);
+               }
        }
 
        wpa_s->p2p_long_listen = 0;