summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Haller <thaller@redhat.com>2021-06-18 11:04:03 +0200
committerThomas Haller <thaller@redhat.com>2021-06-23 12:47:25 +0200
commit8c0a8a6d9bfaa9299eca9a019589f0459b5142f7 (patch)
tree364dc2da7fb0acdbe80105f555d78af09d943163
parentac090edd87bc63d5b798f8a07cf5a7af1de9e91d (diff)
libnm: change "nm_sett_info_propert_type_dcb_au" to use gprop_type for to_dbus_fcn()
-rw-r--r--src/libnm-core-impl/nm-setting-dcb.c16
-rw-r--r--src/libnm-core-impl/nm-setting.c7
-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, 15 insertions, 12 deletions
diff --git a/src/libnm-core-impl/nm-setting-dcb.c b/src/libnm-core-impl/nm-setting-dcb.c
index 57fe1da029..f9602c3bbf 100644
--- a/src/libnm-core-impl/nm-setting-dcb.c
+++ b/src/libnm-core-impl/nm-setting-dcb.c
@@ -744,14 +744,6 @@ set_gvalue_from_array(GValue *v, uint *a, size_t len)
#define SET_GVALUE_FROM_ARRAY(v, a) set_gvalue_from_array(v, a, G_N_ELEMENTS(a))
-static GVariant *
-_nm_setting_dcb_uint_array_to_dbus(const GValue *prop_value)
-{
- GArray *src = g_value_get_boxed(prop_value);
-
- return nm_g_variant_new_au((const guint32 *) src->data, src->len);
-}
-
static void
_nm_setting_dcb_uint_array_from_dbus(GVariant *dbus_value, GValue *prop_value)
{
@@ -763,10 +755,10 @@ _nm_setting_dcb_uint_array_from_dbus(GVariant *dbus_value, GValue *prop_value)
}
static const NMSettInfoPropertType nm_sett_info_propert_type_dcb_au =
- NM_SETT_INFO_PROPERT_TYPE_GPROP_INIT(NM_G_VARIANT_TYPE("au"),
- .gprop_to_dbus_fcn = _nm_setting_dcb_uint_array_to_dbus,
- .gprop_from_dbus_fcn =
- _nm_setting_dcb_uint_array_from_dbus, );
+ NM_SETT_INFO_PROPERT_TYPE_GPROP_INIT(
+ NM_G_VARIANT_TYPE("au"),
+ .typdata_to_dbus.gprop_type = NM_SETTING_PROPERTY_TO_DBUS_FCN_GPROP_TYPE_GARRAY_UINT,
+ .gprop_from_dbus_fcn = _nm_setting_dcb_uint_array_from_dbus, );
/*****************************************************************************/
diff --git a/src/libnm-core-impl/nm-setting.c b/src/libnm-core-impl/nm-setting.c
index bb22b16162..d1e706e71c 100644
--- a/src/libnm-core-impl/nm-setting.c
+++ b/src/libnm-core-impl/nm-setting.c
@@ -547,6 +547,7 @@ _nm_setting_property_to_dbus_fcn_gprop(const NMSettInfoSetting * s
nm_auto_unset_gvalue GValue prop_value = {
0,
};
+ GArray *tmp_array;
nm_assert(property->param_spec);
@@ -570,6 +571,12 @@ _nm_setting_property_to_dbus_fcn_gprop(const NMSettInfoSetting * s
return g_variant_new_int32(g_value_get_enum(&prop_value));
case NM_SETTING_PROPERTY_TO_DBUS_FCN_GPROP_TYPE_FLAGS:
return g_variant_new_uint32(g_value_get_flags(&prop_value));
+ case NM_SETTING_PROPERTY_TO_DBUS_FCN_GPROP_TYPE_GARRAY_UINT:
+ G_STATIC_ASSERT_EXPR(sizeof(guint) == sizeof(guint32));
+ nm_assert(G_VALUE_HOLDS(&prop_value, G_TYPE_ARRAY));
+ 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);
}
return nm_assert_unreachable_val(NULL);
diff --git a/src/libnm-core-impl/tests/test-setting.c b/src/libnm-core-impl/tests/test-setting.c
index 6ee3c19508..4231539bfb 100644
--- a/src/libnm-core-impl/tests/test-setting.c
+++ b/src/libnm-core-impl/tests/test-setting.c
@@ -4385,6 +4385,9 @@ test_setting_metadata(void)
case NM_SETTING_PROPERTY_TO_DBUS_FCN_GPROP_TYPE_FLAGS:
g_assert(g_type_is_a (sip->param_spec->value_type, G_TYPE_FLAGS));
goto check_done;
+ 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_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 bf40869270..6a5cd64076 100644
--- a/src/libnm-core-intern/nm-core-internal.h
+++ b/src/libnm-core-intern/nm-core-internal.h
@@ -676,6 +676,7 @@ typedef enum _nm_packed {
NM_SETTING_PROPERTY_TO_DBUS_FCN_GPROP_TYPE_BYTES,
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,
} NMSettingPropertyToDBusFcnGPropType;
typedef struct {