From 2e46201a1eea62f7d3280a50979766006d877a34 Mon Sep 17 00:00:00 2001 From: Denis Kenzior Date: Sun, 15 May 2016 20:47:41 -0500 Subject: [PATCH] network: Add network_settings_load and _close --- src/network.c | 29 +++++++++++++++++++++++++++++ src/network.h | 3 +++ 2 files changed, 32 insertions(+) diff --git a/src/network.c b/src/network.c index 3e2b13e8..171053d3 100644 --- a/src/network.c +++ b/src/network.c @@ -210,6 +210,35 @@ enum security network_get_security(struct network *network) return network->security; } +bool network_settings_load(struct network *network) +{ + if (network->settings) + return true; + + switch (network->security) { + case SECURITY_8021X: + network->settings = storage_network_open("8021x", + network->ssid); + break; + case SECURITY_PSK: + network->settings = storage_network_open("psk", network->ssid); + break; + default: + return false; + }; + + return true; +} + +void network_settings_close(struct network *network) +{ + if (!network->settings) + return; + + l_settings_free(network->settings); + network->settings = NULL; +} + bool __iwd_network_append_properties(const struct network *network, struct l_dbus_message_builder *builder) { diff --git a/src/network.h b/src/network.h index 2821b188..4a66e97e 100644 --- a/src/network.h +++ b/src/network.h @@ -49,6 +49,9 @@ struct netdev *network_get_netdev(struct network *network); const char *network_get_path(struct network *network); enum security network_get_security(struct network *network); +bool network_settings_load(struct network *network); +void network_settings_close(struct network *network); + void network_emit_added(struct network *network); void network_emit_removed(struct network *network);