From 1d8273f25e1032affc0b4f9b5115f29f677eaa23 Mon Sep 17 00:00:00 2001 From: Jussi Laakkonen Date: Tue, 8 Dec 2020 12:17:58 +0200 Subject: vpn-config: Implement function to get boolean from keyfile Simple boolean getter for VPN keyfiles. In case of error (key missing or invalid boolean) the default value given is returned. --- vpn/vpn-config.c | 15 +++++++++++++++ vpn/vpn.h | 10 ++++++---- 2 files changed, 21 insertions(+), 4 deletions(-) (limited to 'vpn') diff --git a/vpn/vpn-config.c b/vpn/vpn-config.c index 301243b5..8c6b0681 100644 --- a/vpn/vpn-config.c +++ b/vpn/vpn-config.c @@ -580,3 +580,18 @@ char **__vpn_config_get_string_list(GKeyFile *key_file, return strlist; } + +bool __vpn_config_get_boolean(GKeyFile *key_file, const char *group_name, + const char *key, bool default_value) +{ + GError *error = NULL; + bool val; + + val = g_key_file_get_boolean(key_file, group_name, key, &error); + if (error) { + g_error_free(error); + return default_value; + } + + return val; +} diff --git a/vpn/vpn.h b/vpn/vpn.h index 8d7c63d6..9649f545 100644 --- a/vpn/vpn.h +++ b/vpn/vpn.h @@ -111,10 +111,12 @@ int __vpn_rtnl_send(const void *buf, size_t len); int __vpn_config_init(void); void __vpn_config_cleanup(void); -char *__vpn_config_get_string(GKeyFile *key_file, - const char *group_name, const char *key, GError **error); -char **__vpn_config_get_string_list(GKeyFile *key_file, - const char *group_name, const char *key, gsize *length, GError **error); +char *__vpn_config_get_string(GKeyFile *key_file, const char *group_name, + const char *key, GError **error); +char **__vpn_config_get_string_list(GKeyFile *key_file, const char *group_name, + const char *key, gsize *length, GError **error); +bool __vpn_config_get_boolean(GKeyFile *key_file, const char *group_name, + const char *key, bool default_value); int __vpn_settings_init(const char *file); void __vpn_settings_cleanup(void); -- cgit v1.2.1