Add __connman_config_get_string(), __connman_config_get_string_list(), __connman_config_get_bool() which wrap corresponding GLib g_key_file_get_*() functions
Signed-off-by: Peter Meerwald <[email protected]> Cc: Patrik Flykt <[email protected]> Cc: Daniel Wagner <[email protected]> --- src/config.c | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ src/connman.h | 10 ++++++++++ 2 files changed, 59 insertions(+) diff --git a/src/config.c b/src/config.c index 148c67d..61e69fb 100644 --- a/src/config.c +++ b/src/config.c @@ -906,6 +906,55 @@ void __connman_config_cleanup(void) cleanup = false; } +/* trims trailing whitespace */ +char *__connman_config_get_string(GKeyFile *key_file, + const char *group_name, const char *key, GError **error) +{ + char *str = g_key_file_get_string(key_file, group_name, key, error); + if (!str) + return NULL; + + return g_strchomp(str); +} + +char **__connman_config_get_string_list(GKeyFile *key_file, + const char *group_name, const char *key, gsize *length, GError **error) +{ + char **p; + char **strlist = g_key_file_get_string_list(key_file, group_name, key, + length, error); + if (!strlist) + return NULL; + + p = strlist; + while (*p) { + *p = g_strstrip(*p); + p++; + } + + return strlist; +} + +/* accept "true", "1" with trailing whitespace */ +bool __connman_config_get_bool(GKeyFile *key_file, + const char *group_name, const char *key, GError **error) +{ + char *valstr; + bool val = false; + + valstr = g_key_file_get_value(key_file, group_name, key, error); + if (!valstr) + return false; + + valstr = g_strchomp(valstr); + if (strcmp(valstr, "true") == 0 || strcmp(valstr, "1") == 0) + val = true; + + g_free(valstr); + + return val; +} + static char *config_pem_fsid(const char *pem_file) { struct statfs buf; diff --git a/src/connman.h b/src/connman.h index a9dc127..b8a4ae8 100644 --- a/src/connman.h +++ b/src/connman.h @@ -586,6 +586,16 @@ int __connman_config_provision_service(struct connman_service *service); int __connman_config_provision_service_ident(struct connman_service *service, const char *ident, const char *file, const char *entry); +char *__connman_config_get_string(GKeyFile *key_file, + const char *group_name, const char *key, GError **error); + +char **__connman_config_get_string_list(GKeyFile *key_file, + const char *group_name, const char *key, gsize *length, GError **error); + +/* accept "true", "1" with trailing whitespace */ +bool __connman_config_get_bool(GKeyFile *key_file, + const char *group_name, const char *key, GError **error); + int __connman_tethering_init(void); void __connman_tethering_cleanup(void); -- 1.8.3.4 _______________________________________________ connman mailing list [email protected] https://lists.connman.net/mailman/listinfo/connman
