diff options
author | Thomas Haller <thaller@redhat.com> | 2017-10-24 08:44:46 +0200 |
---|---|---|
committer | Thomas Haller <thaller@redhat.com> | 2017-10-31 19:14:07 +0100 |
commit | 262159be0084d444103bcbb61e02d4b0d0f6c10b (patch) | |
tree | 6dfbd0ab92c62b41a4082c15f57d325bc0cd59e0 /src/nm-config-data.c | |
parent | ec9bff293b5612ad7c293656a0abcd73b6e1334c (diff) | |
download | NetworkManager-262159be0084d444103bcbb61e02d4b0d0f6c10b.tar.gz |
config: add nm_config_data_get_value_int64() util
Diffstat (limited to 'src/nm-config-data.c')
-rw-r--r-- | src/nm-config-data.c | 24 |
1 files changed, 23 insertions, 1 deletions
diff --git a/src/nm-config-data.c b/src/nm-config-data.c index 2487b6aa62..4898510210 100644 --- a/src/nm-config-data.c +++ b/src/nm-config-data.c @@ -211,7 +211,7 @@ nm_config_data_get_value_boolean (const NMConfigData *self, const char *group, c g_return_val_if_fail (key && *key, default_value); /* when parsing the boolean, base it on the raw value from g_key_file_get_value(). */ - str = g_key_file_get_value (NM_CONFIG_DATA_GET_PRIVATE (self)->keyfile, group, key, NULL); + str = nm_config_keyfile_get_value (NM_CONFIG_DATA_GET_PRIVATE (self)->keyfile, group, key, NM_CONFIG_GET_VALUE_RAW); if (str) { value = nm_config_parse_boolean (str, default_value); g_free (str); @@ -219,6 +219,28 @@ nm_config_data_get_value_boolean (const NMConfigData *self, const char *group, c return value; } +gint64 +nm_config_data_get_value_int64 (const NMConfigData *self, const char *group, const char *key, guint base, gint64 min, gint64 max, gint64 fallback) +{ + int errsv; + gint64 val; + char *str; + + g_return_val_if_fail (NM_IS_CONFIG_DATA (self), fallback); + g_return_val_if_fail (group && *group, fallback); + g_return_val_if_fail (key && *key, fallback); + + str = nm_config_keyfile_get_value (NM_CONFIG_DATA_GET_PRIVATE (self)->keyfile, group, key, NM_CONFIG_GET_VALUE_NONE); + val = _nm_utils_ascii_str_to_int64 (str, base, min, max, fallback); + if (str) { + /* preserve errno from the parsing. */ + errsv = errno; + g_free (str); + errno = errsv; + } + return val; +} + char ** nm_config_data_get_plugins (const NMConfigData *self, gboolean allow_default) { |