diff --git a/src/network.c b/src/network.c index 26a25b75..bc8d8b97 100644 --- a/src/network.c +++ b/src/network.c @@ -1177,6 +1177,8 @@ void network_rank_update(struct network *network) bool network_info_add_known(const char *ssid, enum security security) { struct network_info *network; + struct l_settings *settings; + bool is_hidden; int err; network = l_new(struct network_info, 1); @@ -1192,6 +1194,13 @@ bool network_info_add_known(const char *ssid, enum security security) network->is_known = true; + settings = storage_network_open(security_to_str(security), ssid); + + if (l_settings_get_bool(settings, "Settings", "Hidden", &is_hidden)) + network->is_hidden = is_hidden; + + l_settings_free(settings); + l_queue_insert(networks, network, timespec_compare, NULL); return true; diff --git a/src/network.h b/src/network.h index 39a3a78c..b45a5bb8 100644 --- a/src/network.h +++ b/src/network.h @@ -70,6 +70,7 @@ struct network_info { struct timespec seen_time; /* Time last seen */ int seen_count; /* Ref count for network.info */ bool is_known:1; + bool is_hidden:1; }; typedef void (*network_info_foreach_func_t)(const struct network_info *info,