summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAntonio Cardace <acardace@redhat.com>2020-05-15 15:25:30 +0200
committerAntonio Cardace <acardace@redhat.com>2020-05-20 10:55:01 +0200
commit572f82a77b94fb0f1b39c27bc4075c3437201211 (patch)
tree4c996abdf6009b4133d26286776b8a2ddef39908
parent12063d6cb657b3e4cf007a5eb3549efe89d83abf (diff)
downloadNetworkManager-572f82a77b94fb0f1b39c27bc4075c3437201211.tar.gz
nm-setting: add internal gendata API to get/set uint32
https://bugzilla.redhat.com/show_bug.cgi?id=1614700
-rw-r--r--libnm-core/nm-core-internal.h8
-rw-r--r--libnm-core/nm-setting.c33
2 files changed, 41 insertions, 0 deletions
diff --git a/libnm-core/nm-core-internal.h b/libnm-core/nm-core-internal.h
index 00645a7618..33062d74ab 100644
--- a/libnm-core/nm-core-internal.h
+++ b/libnm-core/nm-core-internal.h
@@ -334,6 +334,14 @@ const char *const*nm_setting_gendata_get_all_names (NMSetting *setting,
GVariant *const*nm_setting_gendata_get_all_values (NMSetting *setting);
+gboolean nm_setting_gendata_get_uint32 (NMSetting *setting,
+ const char *optname,
+ guint32 *out_value);
+
+void nm_setting_gendata_set_uint32 (NMSetting *setting,
+ const char *optname,
+ guint32 value);
+
/*****************************************************************************/
guint nm_setting_ethtool_init_features (NMSettingEthtool *setting,
diff --git a/libnm-core/nm-setting.c b/libnm-core/nm-setting.c
index 5a16d5cbe7..bf721301f4 100644
--- a/libnm-core/nm-setting.c
+++ b/libnm-core/nm-setting.c
@@ -2616,6 +2616,39 @@ _nm_setting_gendata_reset_from_hash (NMSetting *setting,
return TRUE;
}
+gboolean
+nm_setting_gendata_get_uint32 (NMSetting *setting,
+ const char *optname,
+ guint32 *out_value)
+{
+ GVariant *v;
+
+ nm_assert (NM_IS_SETTING (setting));
+ nm_assert (nm_str_not_empty (optname));
+
+ v = nm_setting_gendata_get (setting, optname);
+ if ( v
+ && g_variant_is_of_type (v, G_VARIANT_TYPE_UINT32)) {
+ NM_SET_OUT (out_value, g_variant_get_uint32 (v));
+ return TRUE;
+ }
+ NM_SET_OUT (out_value, 0);
+ return FALSE;
+}
+
+void
+nm_setting_gendata_set_uint32 (NMSetting *setting,
+ const char *optname,
+ guint32 value)
+{
+ nm_assert (NM_IS_SETTING (setting));
+ nm_assert (nm_str_not_empty (optname));
+
+ g_hash_table_insert (_nm_setting_gendata_hash (setting, TRUE),
+ g_strdup (optname),
+ g_variant_ref_sink (g_variant_new_uint32 (value)));
+}
+
/*****************************************************************************/
static void