diff --git a/src/network.c b/src/network.c index 0170c439..ece8fb24 100644 --- a/src/network.c +++ b/src/network.c @@ -1306,3 +1306,28 @@ bool network_info_has_hidden(void) { return num_known_hidden_networks ? true : false; } + +void network_info_set_hidden(struct network *network) +{ + if (network->info->is_hidden) + return; + + network->info->is_hidden = true; + num_known_hidden_networks += 1; +} + +bool network_info_is_hidden(struct network *network) +{ + return network->info->is_hidden; +} + +const struct network_info *network_info_find(const char *ssid, + enum security security) +{ + struct network_info query; + + query.type = security; + strcpy(query.ssid, ssid); + + return l_queue_find(networks, network_info_match, &query); +} diff --git a/src/network.h b/src/network.h index 5a43c64d..934c46b0 100644 --- a/src/network.h +++ b/src/network.h @@ -85,3 +85,7 @@ void network_info_foreach(network_info_foreach_func_t function, void *user_data); const struct l_queue *network_info_get_known(); bool network_info_has_hidden(void); +void network_info_set_hidden(struct network *network); +bool network_info_is_hidden(struct network *network); +const struct network_info *network_info_find(const char *ssid, + enum security security);