diff options
| author | Naveen Kumar <kumarn@codeaurora.org> | 2016-12-07 19:53:28 +0530 |
|---|---|---|
| committer | Naveen Kumar <kumarn@codeaurora.org> | 2016-12-08 00:11:04 +0530 |
| commit | 2bcbaa45580724f013ad6611d2af001d0a16c98d (patch) | |
| tree | 146eca9e2aece6d74a0bb2858cf1aa3c01077d2b | |
| parent | b09401fc1885ba894cca0a5b1abb8806d886e24e (diff) | |
| parent | 5653c2fb1f4ce1c8ea24badc4ceba83dd9f97832 (diff) | |
| download | android_external_wpa_supplicant_8-2bcbaa45580724f013ad6611d2af001d0a16c98d.tar.gz android_external_wpa_supplicant_8-2bcbaa45580724f013ad6611d2af001d0a16c98d.tar.bz2 android_external_wpa_supplicant_8-2bcbaa45580724f013ad6611d2af001d0a16c98d.zip | |
Merge N-MR1 to remote branch.
Change-Id: Ib1acc45655e32b0f80400cb7f173d58d4f203fe2
| -rw-r--r-- | src/drivers/driver_nl80211.c | 52 | ||||
| -rw-r--r-- | wpa_supplicant/scan.c | 5 |
2 files changed, 52 insertions, 5 deletions
diff --git a/src/drivers/driver_nl80211.c b/src/drivers/driver_nl80211.c index 1b3b0280..8bf049b8 100644 --- a/src/drivers/driver_nl80211.c +++ b/src/drivers/driver_nl80211.c @@ -2050,6 +2050,49 @@ static int nl80211_register_spurious_class3(struct i802_bss *bss) } +static int nl80211_action_subscribe_ap(struct i802_bss *bss) +{ + int ret = 0; + + /* Public Action frames */ + if (nl80211_register_action_frame(bss, (u8 *) "\x04", 1) < 0) + ret = -1; + /* RRM Measurement Report */ + if (nl80211_register_action_frame(bss, (u8 *) "\x05\x01", 2) < 0) + ret = -1; + /* RRM Neighbor Report Request */ + if (nl80211_register_action_frame(bss, (u8 *) "\x05\x04", 2) < 0) + ret = -1; + /* FT Action frames */ + if (nl80211_register_action_frame(bss, (u8 *) "\x06", 1) < 0) + ret = -1; +#ifdef CONFIG_IEEE80211W + /* SA Query */ + if (nl80211_register_action_frame(bss, (u8 *) "\x08", 1) < 0) + ret = -1; +#endif /* CONFIG_IEEE80211W */ + /* Protected Dual of Public Action */ + if (nl80211_register_action_frame(bss, (u8 *) "\x09", 1) < 0) + ret = -1; + /* WNM */ + if (nl80211_register_action_frame(bss, (u8 *) "\x0a", 1) < 0) + ret = -1; + /* WMM */ + if (nl80211_register_action_frame(bss, (u8 *) "\x11", 1) < 0) + ret = -1; +#ifdef CONFIG_FST + /* FST Action frames */ + if (nl80211_register_action_frame(bss, (u8 *) "\x12", 1) < 0) + ret = -1; +#endif /* CONFIG_FST */ + /* Vendor-specific */ + if (nl80211_register_action_frame(bss, (u8 *) "\x7f", 1) < 0) + ret = -1; + + return ret; +} + + static int nl80211_mgmt_subscribe_ap(struct i802_bss *bss) { static const int stypes[] = { @@ -2058,7 +2101,6 @@ static int nl80211_mgmt_subscribe_ap(struct i802_bss *bss) WLAN_FC_STYPE_REASSOC_REQ, WLAN_FC_STYPE_DISASSOC, WLAN_FC_STYPE_DEAUTH, - WLAN_FC_STYPE_ACTION, WLAN_FC_STYPE_PROBE_REQ, /* Beacon doesn't work as mac80211 doesn't currently allow * it, but it wouldn't really be the right thing anyway as @@ -2083,6 +2125,9 @@ static int nl80211_mgmt_subscribe_ap(struct i802_bss *bss) } } + if (nl80211_action_subscribe_ap(bss)) + goto out_err; + if (nl80211_register_spurious_class3(bss)) goto out_err; @@ -2105,10 +2150,7 @@ static int nl80211_mgmt_subscribe_ap_dev_sme(struct i802_bss *bss) wpa_printf(MSG_DEBUG, "nl80211: Subscribe to mgmt frames with AP " "handle %p (device SME)", bss->nl_mgmt); - if (nl80211_register_frame(bss, bss->nl_mgmt, - (WLAN_FC_TYPE_MGMT << 2) | - (WLAN_FC_STYPE_ACTION << 4), - NULL, 0) < 0) + if (nl80211_action_subscribe_ap(bss)) goto out_err; nl80211_mgmt_handle_register_eloop(bss); diff --git a/wpa_supplicant/scan.c b/wpa_supplicant/scan.c index 76108176..8c1384a7 100644 --- a/wpa_supplicant/scan.c +++ b/wpa_supplicant/scan.c @@ -615,6 +615,11 @@ static void wpa_set_scan_ssids(struct wpa_supplicant *wpa_s, { unsigned int i; struct wpa_ssid *ssid; + /* + * For devices with |max_ssids| greater than 1, leave the last slot empty + * for adding the wildcard scan entry. + */ + max_ssids = (max_ssids == 1) ? max_ssids : max_ssids - 1; /* * For devices with max_ssids greater than 1, leave the last slot empty |
