diff options
Diffstat (limited to 'src/libnm-core-impl/nm-setting-wireless-security.c')
| -rw-r--r-- | src/libnm-core-impl/nm-setting-wireless-security.c | 43 |
1 files changed, 27 insertions, 16 deletions
diff --git a/src/libnm-core-impl/nm-setting-wireless-security.c b/src/libnm-core-impl/nm-setting-wireless-security.c index 9e3c8d81..0bfc30c8 100644 --- a/src/libnm-core-impl/nm-setting-wireless-security.c +++ b/src/libnm-core-impl/nm-setting-wireless-security.c @@ -1290,13 +1290,19 @@ set_secret_flags(NMSetting * setting, ->set_secret_flags(setting, secret_name, flags, error); } -/* NMSettingWirelessSecurity:wep-key-type is an enum, but needs to be marshalled - * as 'u', not 'i', for backward-compatibility. - */ static GVariant * -wep_key_type_to_dbus(const GValue *from) +wep_key_type_to_dbus(_NM_SETT_INFO_PROP_TO_DBUS_FCN_ARGS _nm_nil) { - return g_variant_new_uint32(g_value_get_enum(from)); + NMWepKeyType t; + + t = nm_setting_wireless_security_get_wep_key_type(NM_SETTING_WIRELESS_SECURITY(setting)); + if (t == NM_WEP_KEY_TYPE_UNKNOWN) + return NULL; + + /* NMSettingWirelessSecurity:wep-key-type is an enum, but needs to be marshalled + * as 'u', not 'i', for backward-compatibility. + */ + return g_variant_new_uint32(t); } /*****************************************************************************/ @@ -1397,15 +1403,15 @@ set_property(GObject *object, guint prop_id, const GValue *value, GParamSpec *ps break; case PROP_PROTO: g_slist_free_full(priv->proto, g_free); - priv->proto = _nm_utils_strv_to_slist(g_value_get_boxed(value), TRUE); + priv->proto = nm_strv_to_gslist(g_value_get_boxed(value), TRUE); break; case PROP_PAIRWISE: g_slist_free_full(priv->pairwise, g_free); - priv->pairwise = _nm_utils_strv_to_slist(g_value_get_boxed(value), TRUE); + priv->pairwise = nm_strv_to_gslist(g_value_get_boxed(value), TRUE); break; case PROP_GROUP: g_slist_free_full(priv->group, g_free); - priv->group = _nm_utils_strv_to_slist(g_value_get_boxed(value), TRUE); + priv->group = nm_strv_to_gslist(g_value_get_boxed(value), TRUE); break; case PROP_PMF: priv->pmf = g_value_get_int(value); @@ -1924,10 +1930,14 @@ nm_setting_wireless_security_class_init(NMSettingWirelessSecurityClass *klass) NM_TYPE_WEP_KEY_TYPE, NM_WEP_KEY_TYPE_UNKNOWN, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); - _nm_properties_override_gobj(properties_override, - obj_properties[PROP_WEP_KEY_TYPE], - &nm_sett_info_propert_type_plain_u, - .to_dbus_data.gprop_to_dbus_fcn = wep_key_type_to_dbus, ); + _nm_properties_override_gobj( + properties_override, + obj_properties[PROP_WEP_KEY_TYPE], + NM_SETT_INFO_PROPERT_TYPE_DBUS(G_VARIANT_TYPE_UINT32, + .to_dbus_fcn = wep_key_type_to_dbus, + .compare_fcn = _nm_setting_property_compare_fcn_default, + .from_dbus_fcn = _nm_setting_property_from_dbus_fcn_gprop, + .from_dbus_is_full = TRUE)); /** * NMSettingWirelessSecurity:wps-method: @@ -1993,8 +2003,9 @@ nm_setting_wireless_security_class_init(NMSettingWirelessSecurityClass *klass) g_object_class_install_properties(object_class, _PROPERTY_ENUMS_LAST, obj_properties); - _nm_setting_class_commit_full(setting_class, - NM_META_SETTING_TYPE_WIRELESS_SECURITY, - NULL, - properties_override); + _nm_setting_class_commit(setting_class, + NM_META_SETTING_TYPE_WIRELESS_SECURITY, + NULL, + properties_override, + NM_SETT_INFO_PRIVATE_OFFSET_FROM_CLASS); } |