summaryrefslogtreecommitdiff
path: root/vpn
diff options
context:
space:
mode:
authorJussi Laakkonen <jussi.laakkonen@jolla.com>2020-12-08 12:17:58 +0200
committerDaniel Wagner <wagi@monom.org>2020-12-11 14:29:10 +0100
commit1d8273f25e1032affc0b4f9b5115f29f677eaa23 (patch)
tree12ee82eeda4be1f4409b6430f32a522526c84b64 /vpn
parent36b1bb63318c72e0e0018f0281103beb1d8fba24 (diff)
downloadconnman-1d8273f25e1032affc0b4f9b5115f29f677eaa23.tar.gz
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.
Diffstat (limited to 'vpn')
-rw-r--r--vpn/vpn-config.c15
-rw-r--r--vpn/vpn.h10
2 files changed, 21 insertions, 4 deletions
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);