mirror of
https://git.kernel.org/pub/scm/network/wireless/iwd.git
synced 2024-12-22 13:02:44 +01:00
scan: Enable the usage of MAC randomization flag
This commit is contained in:
parent
81d570572e
commit
71b10ab271
35
src/scan.c
35
src/scan.c
@ -306,6 +306,19 @@ static void scan_freq_count(uint32_t freq, void *user_data)
|
||||
*count += 1;
|
||||
}
|
||||
|
||||
static bool scan_mac_address_randomization_is_disabled(void)
|
||||
{
|
||||
const struct l_settings *config = iwd_get_config();
|
||||
bool disabled;
|
||||
|
||||
if (!l_settings_get_bool(config, "Scan",
|
||||
"disable_mac_address_randomization",
|
||||
&disabled))
|
||||
return false;
|
||||
|
||||
return disabled;
|
||||
}
|
||||
|
||||
static struct l_genl_msg *scan_build_cmd(struct scan_context *sc,
|
||||
bool ignore_flush_flag,
|
||||
const struct scan_parameters *params)
|
||||
@ -335,20 +348,14 @@ static struct l_genl_msg *scan_build_cmd(struct scan_context *sc,
|
||||
if (params->flush && !ignore_flush_flag)
|
||||
flags |= NL80211_SCAN_FLAG_FLUSH;
|
||||
|
||||
/*
|
||||
* TODO: Discovery of the hidden networks with randomization flag set
|
||||
* works with real hardware, but fails when used in simulated
|
||||
* environment with mac80211_hwsim. This needs to be investigated.
|
||||
*
|
||||
* if (params->randomize_mac_addr_hint &&
|
||||
* wiphy_has_feature(sc->wiphy,
|
||||
* NL80211_FEATURE_SCAN_RANDOM_MAC_ADDR))
|
||||
*
|
||||
* Randomizing 46 bits (locally administered 1 and multicast 0
|
||||
* is assumed).
|
||||
*
|
||||
* flags |= NL80211_SCAN_FLAG_RANDOM_ADDR;
|
||||
*/
|
||||
if (params->randomize_mac_addr_hint &&
|
||||
wiphy_can_randomize_mac_addr(sc->wiphy) &&
|
||||
!scan_mac_address_randomization_is_disabled())
|
||||
/*
|
||||
* Randomizing 46 bits (locally administered 1 and multicast 0
|
||||
* is assumed).
|
||||
*/
|
||||
flags |= NL80211_SCAN_FLAG_RANDOM_ADDR;
|
||||
|
||||
if (flags)
|
||||
l_genl_msg_append_attr(msg, NL80211_ATTR_SCAN_FLAGS, 4, &flags);
|
||||
|
Loading…
Reference in New Issue
Block a user