diff options
author | Thomas Haller <thaller@redhat.com> | 2015-10-01 13:01:39 +0200 |
---|---|---|
committer | Thomas Haller <thaller@redhat.com> | 2015-10-05 17:12:50 +0200 |
commit | 72ff5e8cac5739c427b1f0c8bfe7f431396d12b9 (patch) | |
tree | 4b9d2f54fad1f36b7ee3babe0bdfb6e501c32900 | |
parent | ced1dcabefdf8663e034822d8773aa79a071a043 (diff) | |
download | NetworkManager-72ff5e8cac5739c427b1f0c8bfe7f431396d12b9.tar.gz |
core: add nm_utils_ascii_str_to_bool()
This is effectively the same as nm_config_parse_boolean(). The difference is,
that "nm-config.c" is not available to the interface-helper, thus any
code used by interface-helper (like "NetworkManager.c") cannot use this
function.
Still don't drop nm_config_parse_boolean() entirely, because it's better
to have the explicit notion of parsing a string in the config-context.
I ended up not using the function. But I'd still keep this patch.
-rw-r--r-- | src/NetworkManagerUtils.c | 34 | ||||
-rw-r--r-- | src/NetworkManagerUtils.h | 5 | ||||
-rw-r--r-- | src/nm-config.c | 27 |
3 files changed, 40 insertions, 26 deletions
diff --git a/src/NetworkManagerUtils.c b/src/NetworkManagerUtils.c index d5bb6c87f0..5d9df4ec8c 100644 --- a/src/NetworkManagerUtils.c +++ b/src/NetworkManagerUtils.c @@ -188,6 +188,40 @@ _nm_singleton_instance_register_destruction (GObject *instance) /*****************************************************************************/ +gint +nm_utils_ascii_str_to_bool (const char *str, + gint default_value) +{ + gsize len; + char *s = NULL; + + if (!str) + return default_value; + + while (str[0] && g_ascii_isspace (str[0])) + str++; + + if (!str[0]) + return default_value; + + len = strlen (str); + if (g_ascii_isspace (str[len - 1])) { + s = g_strdup (str); + g_strchomp (s); + str = s; + } + + if (!g_ascii_strcasecmp (str, "true") || !g_ascii_strcasecmp (str, "yes") || !g_ascii_strcasecmp (str, "on") || !g_ascii_strcasecmp (str, "1")) + default_value = TRUE; + else if (!g_ascii_strcasecmp (str, "false") || !g_ascii_strcasecmp (str, "no") || !g_ascii_strcasecmp (str, "off") || !g_ascii_strcasecmp (str, "0")) + default_value = FALSE; + if (s) + g_free (s); + return default_value; +} + +/*****************************************************************************/ + /* * nm_ethernet_address_is_valid: * @addr: pointer to a binary or ASCII Ethernet address diff --git a/src/NetworkManagerUtils.h b/src/NetworkManagerUtils.h index 3af93e5a03..ceaa2c0c77 100644 --- a/src/NetworkManagerUtils.h +++ b/src/NetworkManagerUtils.h @@ -114,6 +114,11 @@ gboolean nm_utils_error_is_cancelled (GError *error, /*****************************************************************************/ +gint nm_utils_ascii_str_to_bool (const char *str, + gint default_value); + +/*****************************************************************************/ + gboolean nm_ethernet_address_is_valid (gconstpointer addr, gssize len); in_addr_t nm_utils_ip4_address_clear_host_address (in_addr_t addr, guint8 plen); diff --git a/src/nm-config.c b/src/nm-config.c index e09ec48ecd..fb9f0be988 100644 --- a/src/nm-config.c +++ b/src/nm-config.c @@ -126,32 +126,7 @@ gint nm_config_parse_boolean (const char *str, gint default_value) { - gsize len; - char *s = NULL; - - if (!str) - return default_value; - - while (str[0] && g_ascii_isspace (str[0])) - str++; - - if (!str[0]) - return default_value; - - len = strlen (str); - if (g_ascii_isspace (str[len - 1])) { - s = g_strdup (str); - g_strchomp (s); - str = s; - } - - if (!g_ascii_strcasecmp (str, "true") || !g_ascii_strcasecmp (str, "yes") || !g_ascii_strcasecmp (str, "on") || !g_ascii_strcasecmp (str, "1")) - default_value = TRUE; - else if (!g_ascii_strcasecmp (str, "false") || !g_ascii_strcasecmp (str, "no") || !g_ascii_strcasecmp (str, "off") || !g_ascii_strcasecmp (str, "0")) - default_value = FALSE; - if (s) - g_free (s); - return default_value; + return nm_utils_ascii_str_to_bool (str, default_value); } gint |