diff options
author | Thomas Haller <thaller@redhat.com> | 2014-08-28 19:03:58 +0200 |
---|---|---|
committer | Thomas Haller <thaller@redhat.com> | 2014-10-12 22:31:39 +0200 |
commit | 909150c2f65a652f6ab9d70e928e6a0d0b7a590a (patch) | |
tree | 6ab6dc345e87a42a1c544787278cc65c5736a21e | |
parent | b62185fb2a57c7daf3abfd4889d274b3ee4426fa (diff) | |
download | NetworkManager-909150c2f65a652f6ab9d70e928e6a0d0b7a590a.tar.gz |
keyfile: add support for G_INT64 properties
Signed-off-by: Thomas Haller <thaller@redhat.com>
-rw-r--r-- | src/settings/plugins/keyfile/reader.c | 14 | ||||
-rw-r--r-- | src/settings/plugins/keyfile/writer.c | 6 |
2 files changed, 20 insertions, 0 deletions
diff --git a/src/settings/plugins/keyfile/reader.c b/src/settings/plugins/keyfile/reader.c index c925dc5028..1ed938ed7d 100644 --- a/src/settings/plugins/keyfile/reader.c +++ b/src/settings/plugins/keyfile/reader.c @@ -44,6 +44,7 @@ #include "reader.h" #include "common.h" #include "utils.h" +#include "NetworkManagerUtils.h" /* Some setting properties also contain setting names, such as * NMSettingConnection's 'type' property (which specifies the base type of the @@ -1074,6 +1075,7 @@ read_one_setting_value (NMSetting *setting, { ReadInfo *info = user_data; const char *setting_name; + int errsv; GType type; GError *err = NULL; gboolean check_for_key = TRUE; @@ -1174,6 +1176,18 @@ read_one_setting_value (NMSetting *setting, uint_val = g_ascii_strtoull (tmp_str, NULL, 10); g_free (tmp_str); g_object_set (setting, key, uint_val, NULL); + } else if (type == G_TYPE_INT64) { + char *tmp_str; + gint64 int_val; + + tmp_str = nm_keyfile_plugin_kf_get_value (info->keyfile, setting_name, key, NULL); + int_val = nm_utils_ascii_str_to_int64 (tmp_str, 10, G_MININT64, G_MAXINT64, 0); + errsv = errno; + if (errsv) + nm_log_warn (LOGD_SETTINGS, "Invalid int64 value (%s)", tmp_str); + else + g_object_set (setting, key, int_val, NULL); + g_free (tmp_str); } else if (type == G_TYPE_BYTES) { gint *tmp; GByteArray *array; diff --git a/src/settings/plugins/keyfile/writer.c b/src/settings/plugins/keyfile/writer.c index 2661d50066..50132adbbe 100644 --- a/src/settings/plugins/keyfile/writer.c +++ b/src/settings/plugins/keyfile/writer.c @@ -828,6 +828,12 @@ write_setting_value (NMSetting *setting, numstr = g_strdup_printf ("%" G_GUINT64_FORMAT, g_value_get_uint64 (value)); nm_keyfile_plugin_kf_set_value (info->keyfile, setting_name, key, numstr); g_free (numstr); + } else if (type == G_TYPE_INT64) { + char *numstr; + + numstr = g_strdup_printf ("%" G_GINT64_FORMAT, g_value_get_int64 (value)); + nm_keyfile_plugin_kf_set_value (info->keyfile, setting_name, key, numstr); + g_free (numstr); } else if (type == G_TYPE_BOOLEAN) { nm_keyfile_plugin_kf_set_boolean (info->keyfile, setting_name, key, g_value_get_boolean (value)); } else if (type == G_TYPE_CHAR) { |