summaryrefslogtreecommitdiff
path: root/src/nm-config-data.c
diff options
context:
space:
mode:
authorThomas Haller <thaller@redhat.com>2017-10-24 08:44:46 +0200
committerThomas Haller <thaller@redhat.com>2017-10-31 19:14:07 +0100
commit262159be0084d444103bcbb61e02d4b0d0f6c10b (patch)
tree6dfbd0ab92c62b41a4082c15f57d325bc0cd59e0 /src/nm-config-data.c
parentec9bff293b5612ad7c293656a0abcd73b6e1334c (diff)
downloadNetworkManager-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.c24
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)
{