summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorThomas Haller <thaller@redhat.com>2021-06-18 12:27:12 +0200
committerThomas Haller <thaller@redhat.com>2021-06-23 12:47:27 +0200
commit6d390146604d55e6ce51202962631008f8057222 (patch)
treeda40a3b4ad1b035c88f5bb0c7133a760b9e6dfe4 /src
parent8c0a8a6d9bfaa9299eca9a019589f0459b5142f7 (diff)
libnm: change "nm_sett_info_propert_type_strdict" to use gprop_type for to_dbus_fcn()
Diffstat (limited to 'src')
-rw-r--r--src/libnm-core-impl/nm-setting.c3
-rw-r--r--src/libnm-core-impl/nm-utils.c11
-rw-r--r--src/libnm-core-impl/tests/test-setting.c3
-rw-r--r--src/libnm-core-intern/nm-core-internal.h1
4 files changed, 10 insertions, 8 deletions
diff --git a/src/libnm-core-impl/nm-setting.c b/src/libnm-core-impl/nm-setting.c
index d1e706e71c..be7e0bc254 100644
--- a/src/libnm-core-impl/nm-setting.c
+++ b/src/libnm-core-impl/nm-setting.c
@@ -577,6 +577,9 @@ _nm_setting_property_to_dbus_fcn_gprop(const NMSettInfoSetting * s
tmp_array = g_value_get_boxed(&prop_value);
nm_assert(tmp_array);
return nm_g_variant_new_au((const guint32 *) tmp_array->data, tmp_array->len);
+ case NM_SETTING_PROPERTY_TO_DBUS_FCN_GPROP_TYPE_STRDICT:
+ nm_assert(G_VALUE_HOLDS(&prop_value, G_TYPE_HASH_TABLE));
+ return nm_utils_strdict_to_variant_ass(g_value_get_boxed(&prop_value));
}
return nm_assert_unreachable_val(NULL);
diff --git a/src/libnm-core-impl/nm-utils.c b/src/libnm-core-impl/nm-utils.c
index 8c4d3c6a89..2fd10c2500 100644
--- a/src/libnm-core-impl/nm-utils.c
+++ b/src/libnm-core-impl/nm-utils.c
@@ -758,12 +758,6 @@ _nm_utils_hash_values_to_slist(GHashTable *hash)
return list;
}
-static GVariant *
-_nm_utils_strdict_to_dbus(const GValue *prop_value)
-{
- return nm_utils_strdict_to_variant_ass(g_value_get_boxed(prop_value));
-}
-
void
_nm_utils_strdict_from_dbus(GVariant *dbus_value, GValue *prop_value)
{
@@ -781,8 +775,9 @@ _nm_utils_strdict_from_dbus(GVariant *dbus_value, GValue *prop_value)
const NMSettInfoPropertType nm_sett_info_propert_type_strdict =
NM_SETT_INFO_PROPERT_TYPE_GPROP_INIT(NM_G_VARIANT_TYPE("a{ss}"),
- .gprop_to_dbus_fcn = _nm_utils_strdict_to_dbus,
- .gprop_from_dbus_fcn = _nm_utils_strdict_from_dbus, );
+ .gprop_from_dbus_fcn = _nm_utils_strdict_from_dbus,
+ .typdata_to_dbus.gprop_type =
+ NM_SETTING_PROPERTY_TO_DBUS_FCN_GPROP_TYPE_STRDICT);
GHashTable *
_nm_utils_copy_strdict(GHashTable *strdict)
diff --git a/src/libnm-core-impl/tests/test-setting.c b/src/libnm-core-impl/tests/test-setting.c
index 4231539bfb..6f3ffc54eb 100644
--- a/src/libnm-core-impl/tests/test-setting.c
+++ b/src/libnm-core-impl/tests/test-setting.c
@@ -4388,6 +4388,9 @@ test_setting_metadata(void)
case NM_SETTING_PROPERTY_TO_DBUS_FCN_GPROP_TYPE_GARRAY_UINT:
g_assert(sip->param_spec->value_type == G_TYPE_ARRAY);
goto check_done;
+ case NM_SETTING_PROPERTY_TO_DBUS_FCN_GPROP_TYPE_STRDICT:
+ g_assert(sip->param_spec->value_type == G_TYPE_HASH_TABLE);
+ goto check_done;
case NM_SETTING_PROPERTY_TO_DBUS_FCN_GPROP_TYPE_DEFAULT:
goto check_done;
}
diff --git a/src/libnm-core-intern/nm-core-internal.h b/src/libnm-core-intern/nm-core-internal.h
index 6a5cd64076..f36bf573bf 100644
--- a/src/libnm-core-intern/nm-core-internal.h
+++ b/src/libnm-core-intern/nm-core-internal.h
@@ -677,6 +677,7 @@ typedef enum _nm_packed {
NM_SETTING_PROPERTY_TO_DBUS_FCN_GPROP_TYPE_ENUM,
NM_SETTING_PROPERTY_TO_DBUS_FCN_GPROP_TYPE_FLAGS,
NM_SETTING_PROPERTY_TO_DBUS_FCN_GPROP_TYPE_GARRAY_UINT,
+ NM_SETTING_PROPERTY_TO_DBUS_FCN_GPROP_TYPE_STRDICT,
} NMSettingPropertyToDBusFcnGPropType;
typedef struct {