diff options
author | Antonio Cardace <acardace@redhat.com> | 2020-05-15 15:25:30 +0200 |
---|---|---|
committer | Antonio Cardace <acardace@redhat.com> | 2020-05-20 10:55:01 +0200 |
commit | 572f82a77b94fb0f1b39c27bc4075c3437201211 (patch) | |
tree | 4c996abdf6009b4133d26286776b8a2ddef39908 | |
parent | 12063d6cb657b3e4cf007a5eb3549efe89d83abf (diff) | |
download | NetworkManager-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.h | 8 | ||||
-rw-r--r-- | libnm-core/nm-setting.c | 33 |
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 |