diff options
-rw-r--r-- | src/libnm-core-impl/nm-setting.c | 3 | ||||
-rw-r--r-- | src/libnm-core-impl/nm-utils.c | 11 | ||||
-rw-r--r-- | src/libnm-core-impl/tests/test-setting.c | 3 | ||||
-rw-r--r-- | src/libnm-core-intern/nm-core-internal.h | 1 |
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 { |