OSDN Git Service

Accumulative patch from commit 17b8995cf5813d7c027cd7a6884700e791d72392
[android-x86/external-wpa_supplicant_8.git] / wpa_supplicant / p2p_supplicant.c
index c6856e2..fc311e9 100644 (file)
@@ -228,8 +228,10 @@ static int wpas_p2p_scan(void *ctx, enum p2p_scan_type type, int freq,
                                break;
                        }
                }
-       } else
+       } else {
+               os_get_time(&wpa_s->scan_trigger_time);
                wpa_s->scan_res_handler = wpas_p2p_scan_res_handler;
+       }
 
        return ret;
 }
@@ -994,6 +996,7 @@ static void wpas_p2p_clone_config(struct wpa_supplicant *dst,
        d->persistent_reconnect = s->persistent_reconnect;
        d->max_num_sta = s->max_num_sta;
        d->pbc_in_m1 = s->pbc_in_m1;
+       d->ignore_old_scan_res = s->ignore_old_scan_res;
 }
 
 
@@ -3422,8 +3425,8 @@ static void wpas_p2p_scan_res_join(struct wpa_supplicant *wpa_s,
                if (join == 0 &&
                    wpa_s->auto_pd_scan_retry < P2P_AUTO_PD_SCAN_ATTEMPTS) {
                        wpa_s->auto_pd_scan_retry++;
-                       bss = wpa_bss_get_bssid(wpa_s,
-                                               wpa_s->pending_join_dev_addr);
+                       bss = wpa_bss_get_bssid_latest(
+                               wpa_s, wpa_s->pending_join_dev_addr);
                        if (bss) {
                                freq = bss->freq;
                                wpa_printf(MSG_DEBUG, "P2P: Scan retry %d for "
@@ -3503,7 +3506,7 @@ static void wpas_p2p_scan_res_join(struct wpa_supplicant *wpa_s,
                wpa_printf(MSG_DEBUG, "P2P: Target GO operating frequency "
                           "from P2P peer table: %d MHz", freq);
        }
-       bss = wpa_bss_get_bssid(wpa_s, wpa_s->pending_join_iface_addr);
+       bss = wpa_bss_get_bssid_latest(wpa_s, wpa_s->pending_join_iface_addr);
        if (bss) {
                freq = bss->freq;
                wpa_printf(MSG_DEBUG, "P2P: Target GO operating frequency "
@@ -3638,8 +3641,10 @@ static void wpas_p2p_join_scan_req(struct wpa_supplicant *wpa_s, int freq)
         * the new scan results become available.
         */
        ret = wpa_drv_scan(wpa_s, &params);
-       if (!ret)
+       if (!ret) {
+               os_get_time(&wpa_s->scan_trigger_time);
                wpa_s->scan_res_handler = wpas_p2p_scan_res_join;
+       }
 
        wpabuf_free(ies);
 
@@ -3715,7 +3720,7 @@ static int wpas_p2p_join_start(struct wpa_supplicant *wpa_s)
        os_memcpy(res.peer_interface_addr, wpa_s->pending_join_iface_addr,
                  ETH_ALEN);
        res.wps_method = wpa_s->pending_join_wps_method;
-       bss = wpa_bss_get_bssid(wpa_s, wpa_s->pending_join_iface_addr);
+       bss = wpa_bss_get_bssid_latest(wpa_s, wpa_s->pending_join_iface_addr);
        if (bss) {
                res.freq = bss->freq;
                res.ssid_len = bss->ssid_len;