diff options
| author | Linux Build Service Account <lnxbuild@localhost> | 2013-10-24 10:24:55 -0700 |
|---|---|---|
| committer | Gerrit - the friendly Code Review server <code-review@localhost> | 2013-10-24 10:24:55 -0700 |
| commit | 3663b786be68b1d8cb50ecd0f37a739451c0e830 (patch) | |
| tree | f3e9309728b6c177e296bb7940e8d17368995e23 | |
| parent | 0eed4b150593d5cfbb62e02e018fbc8b839a7a29 (diff) | |
| parent | ec9327ed080998bd7e9910cbadcf4735d660b83c (diff) | |
| download | android_external_wpa_supplicant_8-3663b786be68b1d8cb50ecd0f37a739451c0e830.tar.gz android_external_wpa_supplicant_8-3663b786be68b1d8cb50ecd0f37a739451c0e830.tar.bz2 android_external_wpa_supplicant_8-3663b786be68b1d8cb50ecd0f37a739451c0e830.zip | |
Merge "P2P: Do not drop P2P IEs from BSS table on non-P2P scans"
| -rw-r--r-- | wpa_supplicant/bss.c | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/wpa_supplicant/bss.c b/wpa_supplicant/bss.c index ec640b5f..caec1bae 100644 --- a/wpa_supplicant/bss.c +++ b/wpa_supplicant/bss.c @@ -501,6 +501,22 @@ wpa_bss_update(struct wpa_supplicant *wpa_s, struct wpa_bss *bss, wpa_bss_copy_res(bss, res, fetch_time); /* Move the entry to the end of the list */ dl_list_del(&bss->list); +#ifdef CONFIG_P2P + if (wpa_bss_get_vendor_ie(bss, P2P_IE_VENDOR_TYPE) && + !wpa_scan_get_vendor_ie(res, P2P_IE_VENDOR_TYPE)) { + /* + * This can happen when non-P2P station interface runs a scan + * without P2P IE in the Probe Request frame. P2P GO would reply + * to that with a Probe Response that does not include P2P IE. + * Do not update the IEs in this BSS entry to avoid such loss of + * information that may be needed for P2P operations to + * determine group information. + */ + wpa_dbg(wpa_s, MSG_DEBUG, "BSS: Do not update scan IEs for " + MACSTR " since that would remove P2P IE information", + MAC2STR(bss->bssid)); + } else +#endif /* CONFIG_P2P */ if (bss->ie_len + bss->beacon_ie_len >= res->ie_len + res->beacon_ie_len) { os_memcpy(bss + 1, res + 1, res->ie_len + res->beacon_ie_len); |
