mirror of
https://git.kernel.org/pub/scm/network/wireless/iwd.git
synced 2024-11-16 17:09:24 +01:00
knownnetworks: add roam frequency getter
Gets a newly created scan_freq_set containing the most recent frequencies for the network. The currently connected BSS frequency (passed as a parameters) will not be included in the set.
This commit is contained in:
parent
d9e6b2263f
commit
07e6876ef5
@ -271,6 +271,36 @@ void network_info_set_uuid(struct network_info *info, const uint8_t *uuid)
|
|||||||
info->has_uuid = true;
|
info->has_uuid = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
struct scan_freq_set *network_info_get_roam_frequencies(
|
||||||
|
const struct network_info *info,
|
||||||
|
uint32_t current_freq,
|
||||||
|
uint8_t max)
|
||||||
|
{
|
||||||
|
struct scan_freq_set *freqs;
|
||||||
|
const struct l_queue_entry *entry;
|
||||||
|
|
||||||
|
freqs = scan_freq_set_new();
|
||||||
|
|
||||||
|
for (entry = l_queue_get_entries(info->known_frequencies); entry && max;
|
||||||
|
entry = entry->next) {
|
||||||
|
struct known_frequency *kn = entry->data;
|
||||||
|
|
||||||
|
if (kn->frequency == current_freq)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
scan_freq_set_add(freqs, kn->frequency);
|
||||||
|
|
||||||
|
max--;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (scan_freq_set_isempty(freqs)) {
|
||||||
|
scan_freq_set_free(freqs);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
return freqs;
|
||||||
|
}
|
||||||
|
|
||||||
bool network_info_match_hessid(const struct network_info *info,
|
bool network_info_match_hessid(const struct network_info *info,
|
||||||
const uint8_t *hessid)
|
const uint8_t *hessid)
|
||||||
{
|
{
|
||||||
|
@ -108,6 +108,10 @@ const struct iovec *network_info_get_extra_ies(const struct network_info *info,
|
|||||||
/* Gets the UUID, or generates one if not yet created */
|
/* Gets the UUID, or generates one if not yet created */
|
||||||
const uint8_t *network_info_get_uuid(struct network_info *info);
|
const uint8_t *network_info_get_uuid(struct network_info *info);
|
||||||
void network_info_set_uuid(struct network_info *info, const uint8_t *uuid);
|
void network_info_set_uuid(struct network_info *info, const uint8_t *uuid);
|
||||||
|
struct scan_freq_set *network_info_get_roam_frequencies(
|
||||||
|
const struct network_info *info,
|
||||||
|
uint32_t current_freq,
|
||||||
|
uint8_t max);
|
||||||
|
|
||||||
bool network_info_match_hessid(const struct network_info *info,
|
bool network_info_match_hessid(const struct network_info *info,
|
||||||
const uint8_t *hessid);
|
const uint8_t *hessid);
|
||||||
|
Loading…
Reference in New Issue
Block a user