From ed57990b58682aff0b0d71a4684cd9819f03baea Mon Sep 17 00:00:00 2001 From: Thomas Haller Date: Fri, 18 Jun 2021 12:27:12 +0200 Subject: [PATCH] libnm: change "nm_sett_info_propert_type_mac_address" to use gprop_type for to_dbus_fcn() --- src/libnm-core-impl/nm-setting.c | 2 ++ src/libnm-core-impl/nm-utils.c | 15 +++++---------- src/libnm-core-impl/tests/test-setting.c | 3 +++ src/libnm-core-intern/nm-core-internal.h | 1 + 4 files changed, 11 insertions(+), 10 deletions(-) diff --git a/src/libnm-core-impl/nm-setting.c b/src/libnm-core-impl/nm-setting.c index be7e0bc254..74b43dfeb7 100644 --- a/src/libnm-core-impl/nm-setting.c +++ b/src/libnm-core-impl/nm-setting.c @@ -580,6 +580,8 @@ _nm_setting_property_to_dbus_fcn_gprop(const NMSettInfoSetting * s 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)); + case NM_SETTING_PROPERTY_TO_DBUS_FCN_GPROP_TYPE_MAC_ADDRESS: + return nm_utils_hwaddr_to_dbus(g_value_get_string(&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 2fd10c2500..12e3bd40f4 100644 --- a/src/libnm-core-impl/nm-utils.c +++ b/src/libnm-core-impl/nm-utils.c @@ -4085,7 +4085,7 @@ _nm_utils_hwaddr_cloned_data_synth(const NMSettInfoSetting * sett_ g_object_get(setting, "cloned-mac-address", &addr, NULL); /* Before introducing the extended "cloned-mac-address" (and its D-Bus - * field "assigned-mac-address"), libnm's _nm_utils_hwaddr_to_dbus() + * field "assigned-mac-address"), libnm's nm_utils_hwaddr_to_dbus() * would drop invalid values as it was unable to serialize them. * * Now, we would like to send invalid values as "assigned-mac-address" @@ -4129,12 +4129,6 @@ const NMSettInfoPropertType nm_sett_info_propert_type_assigned_mac_address = .to_dbus_fcn = _nm_utils_hwaddr_cloned_data_synth, .from_dbus_fcn = _nm_utils_hwaddr_cloned_data_set, ); -static GVariant * -_nm_utils_hwaddr_to_dbus(const GValue *prop_value) -{ - return nm_utils_hwaddr_to_dbus(g_value_get_string(prop_value)); -} - static void _nm_utils_hwaddr_from_dbus(GVariant *dbus_value, GValue *prop_value) { @@ -4147,9 +4141,10 @@ _nm_utils_hwaddr_from_dbus(GVariant *dbus_value, GValue *prop_value) } const NMSettInfoPropertType nm_sett_info_propert_type_mac_address = - NM_SETT_INFO_PROPERT_TYPE_GPROP_INIT(G_VARIANT_TYPE_BYTESTRING, - .gprop_to_dbus_fcn = _nm_utils_hwaddr_to_dbus, - .gprop_from_dbus_fcn = _nm_utils_hwaddr_from_dbus, ); + NM_SETT_INFO_PROPERT_TYPE_GPROP_INIT( + G_VARIANT_TYPE_BYTESTRING, + .gprop_from_dbus_fcn = _nm_utils_hwaddr_from_dbus, + .typdata_to_dbus.gprop_type = NM_SETTING_PROPERTY_TO_DBUS_FCN_GPROP_TYPE_MAC_ADDRESS); /*****************************************************************************/ diff --git a/src/libnm-core-impl/tests/test-setting.c b/src/libnm-core-impl/tests/test-setting.c index 6f3ffc54eb..567eb81df4 100644 --- a/src/libnm-core-impl/tests/test-setting.c +++ b/src/libnm-core-impl/tests/test-setting.c @@ -4391,6 +4391,9 @@ test_setting_metadata(void) 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_MAC_ADDRESS: + g_assert(sip->param_spec->value_type == G_TYPE_STRING); + 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 f36bf573bf..7678bcef80 100644 --- a/src/libnm-core-intern/nm-core-internal.h +++ b/src/libnm-core-intern/nm-core-internal.h @@ -678,6 +678,7 @@ typedef enum _nm_packed { 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, + NM_SETTING_PROPERTY_TO_DBUS_FCN_GPROP_TYPE_MAC_ADDRESS, } NMSettingPropertyToDBusFcnGPropType; typedef struct {