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 2633cca..d1e7bae 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;