diff --git a/src/libnm-core-impl/nm-setting-8021x.c b/src/libnm-core-impl/nm-setting-8021x.c index 4c0aa763f3..103443ba49 100644 --- a/src/libnm-core-impl/nm-setting-8021x.c +++ b/src/libnm-core-impl/nm-setting-8021x.c @@ -131,53 +131,53 @@ NM_GOBJECT_PROPERTIES_DEFINE(NMSetting8021x, PROP_AUTH_TIMEOUT, ); typedef struct { - GSList * eap; /* GSList of strings */ - char * identity; - char * anonymous_identity; - char * pac_file; - GBytes * ca_cert; - char * ca_cert_password; - char * ca_path; - char * subject_match; - GSList * altsubject_matches; - char * domain_suffix_match; - char * domain_match; - GBytes * client_cert; - char * client_cert_password; - char * phase1_peapver; - char * phase1_peaplabel; - char * phase1_fast_provisioning; - char * phase2_auth; - char * phase2_autheap; - GBytes * phase2_ca_cert; - char * phase2_ca_cert_password; - char * phase2_ca_path; - char * phase2_subject_match; - GSList * phase2_altsubject_matches; - char * phase2_domain_suffix_match; - char * phase2_domain_match; - GBytes * phase2_client_cert; - char * phase2_client_cert_password; - char * password; - GBytes * password_raw; - char * pin; - GBytes * private_key; - char * private_key_password; - GBytes * phase2_private_key; - char * phase2_private_key_password; - int auth_timeout; - NMSetting8021xAuthFlags phase1_auth_flags; - NMSettingSecretFlags ca_cert_password_flags; - NMSettingSecretFlags client_cert_password_flags; - NMSettingSecretFlags phase2_ca_cert_password_flags; - NMSettingSecretFlags phase2_client_cert_password_flags; - NMSettingSecretFlags password_flags; - NMSettingSecretFlags password_raw_flags; - NMSettingSecretFlags pin_flags; - NMSettingSecretFlags private_key_password_flags; - NMSettingSecretFlags phase2_private_key_password_flags; - bool optional; - bool system_ca_certs; + GSList *eap; /* GSList of strings */ + char * identity; + char * anonymous_identity; + char * pac_file; + GBytes *ca_cert; + char * ca_cert_password; + char * ca_path; + char * subject_match; + GSList *altsubject_matches; + char * domain_suffix_match; + char * domain_match; + GBytes *client_cert; + char * client_cert_password; + char * phase1_peapver; + char * phase1_peaplabel; + char * phase1_fast_provisioning; + char * phase2_auth; + char * phase2_autheap; + GBytes *phase2_ca_cert; + char * phase2_ca_cert_password; + char * phase2_ca_path; + char * phase2_subject_match; + GSList *phase2_altsubject_matches; + char * phase2_domain_suffix_match; + char * phase2_domain_match; + GBytes *phase2_client_cert; + char * phase2_client_cert_password; + char * password; + GBytes *password_raw; + char * pin; + GBytes *private_key; + char * private_key_password; + GBytes *phase2_private_key; + char * phase2_private_key_password; + guint ca_cert_password_flags; + guint client_cert_password_flags; + guint phase2_ca_cert_password_flags; + guint phase2_client_cert_password_flags; + guint password_flags; + guint password_raw_flags; + guint pin_flags; + guint private_key_password_flags; + guint phase2_private_key_password_flags; + guint32 phase1_auth_flags; + gint32 auth_timeout; + bool optional; + bool system_ca_certs; } NMSetting8021xPrivate; /** @@ -2516,7 +2516,7 @@ need_secrets_sim(NMSetting8021x *self, GPtrArray *secrets, gboolean phase2) { NMSetting8021xPrivate *priv = NM_SETTING_802_1X_GET_PRIVATE(self); - if (!priv->pin || !strlen(priv->pin)) + if (nm_str_is_empty(priv->pin)) g_ptr_array_add(secrets, NM_SETTING_802_1X_PIN); } @@ -2755,7 +2755,7 @@ verify_ttls(NMSetting8021x *self, gboolean phase2, GError **error) { NMSetting8021xPrivate *priv = NM_SETTING_802_1X_GET_PRIVATE(self); - if (!priv->identity || !strlen(priv->identity)) { + if (nm_str_is_empty(priv->identity)) { if (!priv->identity) { g_set_error_literal(error, NM_CONNECTION_ERROR, @@ -2797,21 +2797,18 @@ verify_identity(NMSetting8021x *self, gboolean phase2, GError **error) { NMSetting8021xPrivate *priv = NM_SETTING_802_1X_GET_PRIVATE(self); - if (!priv->identity) { - g_set_error_literal(error, - NM_CONNECTION_ERROR, - NM_CONNECTION_ERROR_MISSING_PROPERTY, - _("property is missing")); - g_prefix_error(error, - "%s.%s: ", - NM_SETTING_802_1X_SETTING_NAME, - NM_SETTING_802_1X_IDENTITY); - return FALSE; - } else if (!strlen(priv->identity)) { - g_set_error_literal(error, - NM_CONNECTION_ERROR, - NM_CONNECTION_ERROR_INVALID_PROPERTY, - _("property is empty")); + if (nm_str_is_empty(priv->identity)) { + if (!priv->identity) { + g_set_error_literal(error, + NM_CONNECTION_ERROR, + NM_CONNECTION_ERROR_MISSING_PROPERTY, + _("property is missing")); + } else { + g_set_error_literal(error, + NM_CONNECTION_ERROR, + NM_CONNECTION_ERROR_INVALID_PROPERTY, + _("property is empty")); + } g_prefix_error(error, "%s.%s: ", NM_SETTING_802_1X_SETTING_NAME, @@ -2833,7 +2830,7 @@ need_secrets_phase2(NMSetting8021x *self, GPtrArray *secrets, gboolean phase2) /* Check phase2_auth and phase2_autheap */ method = priv->phase2_auth; - if (!method && priv->phase2_autheap) + if (!method) method = priv->phase2_autheap; if (!method) { @@ -2970,7 +2967,7 @@ verify(NMSetting *setting, NMConnection *connection, GError **error) return FALSE; } - if (NM_FLAGS_ANY(priv->phase1_auth_flags, ~NM_SETTING_802_1X_AUTH_FLAGS_ALL)) { + if (NM_FLAGS_ANY(priv->phase1_auth_flags, ~((guint32) NM_SETTING_802_1X_AUTH_FLAGS_ALL))) { g_set_error_literal(error, NM_CONNECTION_ERROR, NM_CONNECTION_ERROR_INVALID_PROPERTY, @@ -3109,146 +3106,14 @@ get_property(GObject *object, guint prop_id, GValue *value, GParamSpec *pspec) case PROP_EAP: g_value_take_boxed(value, _nm_utils_slist_to_strv(priv->eap, TRUE)); break; - case PROP_IDENTITY: - g_value_set_string(value, priv->identity); - break; - case PROP_ANONYMOUS_IDENTITY: - g_value_set_string(value, priv->anonymous_identity); - break; - case PROP_PAC_FILE: - g_value_set_string(value, priv->pac_file); - break; - case PROP_CA_CERT: - g_value_set_boxed(value, priv->ca_cert); - break; - case PROP_CA_CERT_PASSWORD: - g_value_set_string(value, priv->ca_cert_password); - break; - case PROP_CA_CERT_PASSWORD_FLAGS: - g_value_set_flags(value, priv->ca_cert_password_flags); - break; - case PROP_CA_PATH: - g_value_set_string(value, priv->ca_path); - break; - case PROP_SUBJECT_MATCH: - g_value_set_string(value, priv->subject_match); - break; case PROP_ALTSUBJECT_MATCHES: g_value_take_boxed(value, _nm_utils_slist_to_strv(priv->altsubject_matches, TRUE)); break; - case PROP_DOMAIN_SUFFIX_MATCH: - g_value_set_string(value, priv->domain_suffix_match); - break; - case PROP_DOMAIN_MATCH: - g_value_set_string(value, priv->domain_match); - break; - case PROP_CLIENT_CERT: - g_value_set_boxed(value, priv->client_cert); - break; - case PROP_CLIENT_CERT_PASSWORD: - g_value_set_string(value, priv->client_cert_password); - break; - case PROP_CLIENT_CERT_PASSWORD_FLAGS: - g_value_set_flags(value, priv->client_cert_password_flags); - break; - case PROP_PHASE1_PEAPVER: - g_value_set_string(value, priv->phase1_peapver); - break; - case PROP_PHASE1_PEAPLABEL: - g_value_set_string(value, priv->phase1_peaplabel); - break; - case PROP_PHASE1_FAST_PROVISIONING: - g_value_set_string(value, priv->phase1_fast_provisioning); - break; - case PROP_PHASE1_AUTH_FLAGS: - g_value_set_uint(value, priv->phase1_auth_flags); - break; - case PROP_PHASE2_AUTH: - g_value_set_string(value, priv->phase2_auth); - break; - case PROP_PHASE2_AUTHEAP: - g_value_set_string(value, priv->phase2_autheap); - break; - case PROP_PHASE2_CA_CERT: - g_value_set_boxed(value, priv->phase2_ca_cert); - break; - case PROP_PHASE2_CA_CERT_PASSWORD: - g_value_set_string(value, priv->phase2_ca_cert_password); - break; - case PROP_PHASE2_CA_CERT_PASSWORD_FLAGS: - g_value_set_flags(value, priv->phase2_ca_cert_password_flags); - break; - case PROP_PHASE2_CA_PATH: - g_value_set_string(value, priv->phase2_ca_path); - break; - case PROP_PHASE2_SUBJECT_MATCH: - g_value_set_string(value, priv->phase2_subject_match); - break; case PROP_PHASE2_ALTSUBJECT_MATCHES: g_value_take_boxed(value, _nm_utils_slist_to_strv(priv->phase2_altsubject_matches, TRUE)); break; - case PROP_PHASE2_DOMAIN_SUFFIX_MATCH: - g_value_set_string(value, priv->phase2_domain_suffix_match); - break; - case PROP_PHASE2_DOMAIN_MATCH: - g_value_set_string(value, priv->phase2_domain_match); - break; - case PROP_PHASE2_CLIENT_CERT: - g_value_set_boxed(value, priv->phase2_client_cert); - break; - case PROP_PHASE2_CLIENT_CERT_PASSWORD: - g_value_set_string(value, priv->phase2_client_cert_password); - break; - case PROP_PHASE2_CLIENT_CERT_PASSWORD_FLAGS: - g_value_set_flags(value, priv->phase2_client_cert_password_flags); - break; - case PROP_PASSWORD: - g_value_set_string(value, priv->password); - break; - case PROP_PASSWORD_FLAGS: - g_value_set_flags(value, priv->password_flags); - break; - case PROP_PASSWORD_RAW: - g_value_set_boxed(value, priv->password_raw); - break; - case PROP_PASSWORD_RAW_FLAGS: - g_value_set_flags(value, priv->password_raw_flags); - break; - case PROP_PRIVATE_KEY: - g_value_set_boxed(value, priv->private_key); - break; - case PROP_PRIVATE_KEY_PASSWORD: - g_value_set_string(value, priv->private_key_password); - break; - case PROP_PRIVATE_KEY_PASSWORD_FLAGS: - g_value_set_flags(value, priv->private_key_password_flags); - break; - case PROP_PHASE2_PRIVATE_KEY: - g_value_set_boxed(value, priv->phase2_private_key); - break; - case PROP_PHASE2_PRIVATE_KEY_PASSWORD: - g_value_set_string(value, priv->phase2_private_key_password); - break; - case PROP_PHASE2_PRIVATE_KEY_PASSWORD_FLAGS: - g_value_set_flags(value, priv->phase2_private_key_password_flags); - break; - case PROP_PIN: - g_value_set_string(value, priv->pin); - break; - case PROP_PIN_FLAGS: - g_value_set_flags(value, priv->pin_flags); - break; - case PROP_SYSTEM_CA_CERTS: - g_value_set_boolean(value, priv->system_ca_certs); - break; - case PROP_AUTH_TIMEOUT: - g_value_set_int(value, priv->auth_timeout); - break; - case PROP_OPTIONAL: - g_value_set_boolean(value, priv->optional); - break; default: - G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec); + _nm_setting_property_get_property_direct(object, prop_id, value, pspec); break; } } @@ -3264,179 +3129,16 @@ set_property(GObject *object, guint prop_id, const GValue *value, GParamSpec *ps g_slist_free_full(priv->eap, g_free); priv->eap = nm_strv_to_gslist(g_value_get_boxed(value), TRUE); break; - case PROP_IDENTITY: - g_free(priv->identity); - priv->identity = g_value_dup_string(value); - break; - case PROP_ANONYMOUS_IDENTITY: - g_free(priv->anonymous_identity); - priv->anonymous_identity = g_value_dup_string(value); - break; - case PROP_PAC_FILE: - g_free(priv->pac_file); - priv->pac_file = g_value_dup_string(value); - break; - case PROP_CA_CERT: - g_bytes_unref(priv->ca_cert); - priv->ca_cert = g_value_dup_boxed(value); - break; - case PROP_CA_CERT_PASSWORD: - g_free(priv->ca_cert_password); - priv->ca_cert_password = g_value_dup_string(value); - break; - case PROP_CA_CERT_PASSWORD_FLAGS: - priv->ca_cert_password_flags = g_value_get_flags(value); - break; - case PROP_CA_PATH: - g_free(priv->ca_path); - priv->ca_path = g_value_dup_string(value); - break; - case PROP_SUBJECT_MATCH: - g_free(priv->subject_match); - priv->subject_match = nm_strdup_not_empty(g_value_get_string(value)); - break; case PROP_ALTSUBJECT_MATCHES: g_slist_free_full(priv->altsubject_matches, g_free); priv->altsubject_matches = nm_strv_to_gslist(g_value_get_boxed(value), TRUE); break; - case PROP_DOMAIN_SUFFIX_MATCH: - g_free(priv->domain_suffix_match); - priv->domain_suffix_match = nm_strdup_not_empty(g_value_get_string(value)); - break; - case PROP_DOMAIN_MATCH: - g_free(priv->domain_match); - priv->domain_match = nm_strdup_not_empty(g_value_get_string(value)); - break; - case PROP_CLIENT_CERT: - g_bytes_unref(priv->client_cert); - priv->client_cert = g_value_dup_boxed(value); - break; - case PROP_CLIENT_CERT_PASSWORD: - g_free(priv->client_cert_password); - priv->client_cert_password = g_value_dup_string(value); - break; - case PROP_CLIENT_CERT_PASSWORD_FLAGS: - priv->client_cert_password_flags = g_value_get_flags(value); - break; - case PROP_PHASE1_PEAPVER: - g_free(priv->phase1_peapver); - priv->phase1_peapver = g_value_dup_string(value); - break; - case PROP_PHASE1_PEAPLABEL: - g_free(priv->phase1_peaplabel); - priv->phase1_peaplabel = g_value_dup_string(value); - break; - case PROP_PHASE1_FAST_PROVISIONING: - g_free(priv->phase1_fast_provisioning); - priv->phase1_fast_provisioning = g_value_dup_string(value); - break; - case PROP_PHASE1_AUTH_FLAGS: - priv->phase1_auth_flags = g_value_get_uint(value); - break; - case PROP_PHASE2_AUTH: - g_free(priv->phase2_auth); - priv->phase2_auth = g_value_dup_string(value); - break; - case PROP_PHASE2_AUTHEAP: - g_free(priv->phase2_autheap); - priv->phase2_autheap = g_value_dup_string(value); - break; - case PROP_PHASE2_CA_CERT: - g_bytes_unref(priv->phase2_ca_cert); - priv->phase2_ca_cert = g_value_dup_boxed(value); - break; - case PROP_PHASE2_CA_CERT_PASSWORD: - g_free(priv->phase2_ca_cert_password); - priv->phase2_ca_cert_password = g_value_dup_string(value); - break; - case PROP_PHASE2_CA_CERT_PASSWORD_FLAGS: - priv->phase2_ca_cert_password_flags = g_value_get_flags(value); - break; - case PROP_PHASE2_CA_PATH: - g_free(priv->phase2_ca_path); - priv->phase2_ca_path = g_value_dup_string(value); - break; - case PROP_PHASE2_SUBJECT_MATCH: - g_free(priv->phase2_subject_match); - priv->phase2_subject_match = nm_strdup_not_empty(g_value_get_string(value)); - break; case PROP_PHASE2_ALTSUBJECT_MATCHES: g_slist_free_full(priv->phase2_altsubject_matches, g_free); priv->phase2_altsubject_matches = nm_strv_to_gslist(g_value_get_boxed(value), TRUE); break; - case PROP_PHASE2_DOMAIN_SUFFIX_MATCH: - g_free(priv->phase2_domain_suffix_match); - priv->phase2_domain_suffix_match = nm_strdup_not_empty(g_value_get_string(value)); - break; - case PROP_PHASE2_DOMAIN_MATCH: - g_free(priv->phase2_domain_match); - priv->phase2_domain_match = nm_strdup_not_empty(g_value_get_string(value)); - break; - case PROP_PHASE2_CLIENT_CERT: - g_bytes_unref(priv->phase2_client_cert); - priv->phase2_client_cert = g_value_dup_boxed(value); - break; - case PROP_PHASE2_CLIENT_CERT_PASSWORD: - g_free(priv->phase2_client_cert_password); - priv->phase2_client_cert_password = g_value_dup_string(value); - break; - case PROP_PHASE2_CLIENT_CERT_PASSWORD_FLAGS: - priv->phase2_client_cert_password_flags = g_value_get_flags(value); - break; - case PROP_PASSWORD: - g_free(priv->password); - priv->password = g_value_dup_string(value); - break; - case PROP_PASSWORD_FLAGS: - priv->password_flags = g_value_get_flags(value); - break; - case PROP_PASSWORD_RAW: - g_bytes_unref(priv->password_raw); - priv->password_raw = g_value_dup_boxed(value); - break; - case PROP_PASSWORD_RAW_FLAGS: - priv->password_raw_flags = g_value_get_flags(value); - break; - case PROP_PRIVATE_KEY: - g_bytes_unref(priv->private_key); - priv->private_key = g_value_dup_boxed(value); - break; - case PROP_PRIVATE_KEY_PASSWORD: - nm_free_secret(priv->private_key_password); - priv->private_key_password = g_value_dup_string(value); - break; - case PROP_PRIVATE_KEY_PASSWORD_FLAGS: - priv->private_key_password_flags = g_value_get_flags(value); - break; - case PROP_PHASE2_PRIVATE_KEY: - g_bytes_unref(priv->phase2_private_key); - priv->phase2_private_key = g_value_dup_boxed(value); - break; - case PROP_PHASE2_PRIVATE_KEY_PASSWORD: - nm_free_secret(priv->phase2_private_key_password); - priv->phase2_private_key_password = g_value_dup_string(value); - break; - case PROP_PHASE2_PRIVATE_KEY_PASSWORD_FLAGS: - priv->phase2_private_key_password_flags = g_value_get_flags(value); - break; - case PROP_PIN: - g_free(priv->pin); - priv->pin = g_value_dup_string(value); - break; - case PROP_PIN_FLAGS: - priv->pin_flags = g_value_get_flags(value); - break; - case PROP_SYSTEM_CA_CERTS: - priv->system_ca_certs = g_value_get_boolean(value); - break; - case PROP_AUTH_TIMEOUT: - priv->auth_timeout = g_value_get_int(value); - break; - case PROP_OPTIONAL: - priv->optional = g_value_get_boolean(value); - break; default: - G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec); + _nm_setting_property_set_property_direct(object, prop_id, value, pspec); break; } } @@ -3466,40 +3168,10 @@ finalize(GObject *object) NMSetting8021x * self = NM_SETTING_802_1X(object); NMSetting8021xPrivate *priv = NM_SETTING_802_1X_GET_PRIVATE(self); - g_free(priv->identity); - g_free(priv->anonymous_identity); - g_free(priv->ca_path); - g_free(priv->subject_match); - g_free(priv->domain_suffix_match); - g_free(priv->phase1_peapver); - g_free(priv->phase1_peaplabel); - g_free(priv->phase1_fast_provisioning); - g_free(priv->phase2_auth); - g_free(priv->phase2_autheap); - g_free(priv->phase2_ca_path); - g_free(priv->phase2_subject_match); - g_free(priv->phase2_domain_suffix_match); - g_free(priv->password); - g_bytes_unref(priv->password_raw); - g_free(priv->pin); - g_slist_free_full(priv->eap, g_free); g_slist_free_full(priv->altsubject_matches, g_free); g_slist_free_full(priv->phase2_altsubject_matches, g_free); - g_bytes_unref(priv->ca_cert); - g_free(priv->ca_cert_password); - g_bytes_unref(priv->client_cert); - g_free(priv->client_cert_password); - g_bytes_unref(priv->private_key); - nm_free_secret(priv->private_key_password); - g_bytes_unref(priv->phase2_ca_cert); - g_free(priv->phase2_ca_cert_password); - g_bytes_unref(priv->phase2_client_cert); - g_free(priv->phase2_client_cert_password); - g_bytes_unref(priv->phase2_private_key); - nm_free_secret(priv->phase2_private_key_password); - G_OBJECT_CLASS(nm_setting_802_1x_parent_class)->finalize(object); } @@ -3555,11 +3227,13 @@ nm_setting_802_1x_class_init(NMSetting8021xClass *klass) * example: IEEE_8021X_IDENTITY=itsme * ---end--- */ - obj_properties[PROP_IDENTITY] = g_param_spec_string(NM_SETTING_802_1X_IDENTITY, - "", - "", - NULL, - G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); + _nm_setting_property_define_direct_string(properties_override, + obj_properties, + NM_SETTING_802_1X_IDENTITY, + PROP_IDENTITY, + NM_SETTING_PARAM_NONE, + NMSetting8021xPrivate, + identity); /** * NMSetting8021x:anonymous-identity: @@ -3574,12 +3248,13 @@ nm_setting_802_1x_class_init(NMSetting8021xClass *klass) * description: Anonymous identity for EAP authentication methods. * ---end--- */ - obj_properties[PROP_ANONYMOUS_IDENTITY] = - g_param_spec_string(NM_SETTING_802_1X_ANONYMOUS_IDENTITY, - "", - "", - NULL, - G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); + _nm_setting_property_define_direct_string(properties_override, + obj_properties, + NM_SETTING_802_1X_ANONYMOUS_IDENTITY, + PROP_ANONYMOUS_IDENTITY, + NM_SETTING_PARAM_NONE, + NMSetting8021xPrivate, + anonymous_identity); /** * NMSetting8021x:pac-file: @@ -3593,11 +3268,13 @@ nm_setting_802_1x_class_init(NMSetting8021xClass *klass) * example: IEEE_8021X_PAC_FILE=/home/joe/my-fast.pac * ---end--- */ - obj_properties[PROP_PAC_FILE] = g_param_spec_string(NM_SETTING_802_1X_PAC_FILE, - "", - "", - NULL, - G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); + _nm_setting_property_define_direct_string(properties_override, + obj_properties, + NM_SETTING_802_1X_PAC_FILE, + PROP_PAC_FILE, + NM_SETTING_PARAM_NONE, + NMSetting8021xPrivate, + pac_file); /** * NMSetting8021x:ca-cert: @@ -3627,11 +3304,13 @@ nm_setting_802_1x_class_init(NMSetting8021xClass *klass) * example: IEEE_8021X_CA_CERT=/home/joe/cacert.crt * ---end--- */ - obj_properties[PROP_CA_CERT] = g_param_spec_boxed(NM_SETTING_802_1X_CA_CERT, - "", - "", - G_TYPE_BYTES, - G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); + _nm_setting_property_define_direct_bytes(properties_override, + obj_properties, + NM_SETTING_802_1X_CA_CERT, + PROP_CA_CERT, + NM_SETTING_PARAM_NONE, + NMSetting8021xPrivate, + ca_cert); /** * NMSetting8021x:ca-cert-password: @@ -3645,12 +3324,13 @@ nm_setting_802_1x_class_init(NMSetting8021xClass *klass) /* ---ifcfg-rh--- * ---end--- */ - obj_properties[PROP_CA_CERT_PASSWORD] = - g_param_spec_string(NM_SETTING_802_1X_CA_CERT_PASSWORD, - "", - "", - NULL, - G_PARAM_READWRITE | NM_SETTING_PARAM_SECRET | G_PARAM_STATIC_STRINGS); + _nm_setting_property_define_direct_string(properties_override, + obj_properties, + NM_SETTING_802_1X_CA_CERT_PASSWORD, + PROP_CA_CERT_PASSWORD, + NM_SETTING_PARAM_SECRET, + NMSetting8021xPrivate, + ca_cert_password); /** * NMSetting8021x:ca-cert-password-flags: @@ -3662,13 +3342,12 @@ nm_setting_802_1x_class_init(NMSetting8021xClass *klass) /* ---ifcfg-rh--- * ---end--- */ - obj_properties[PROP_CA_CERT_PASSWORD_FLAGS] = - g_param_spec_flags(NM_SETTING_802_1X_CA_CERT_PASSWORD_FLAGS, - "", - "", - NM_TYPE_SETTING_SECRET_FLAGS, - NM_SETTING_SECRET_FLAG_NONE, - G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); + _nm_setting_property_define_direct_secret_flags(properties_override, + obj_properties, + NM_SETTING_802_1X_CA_CERT_PASSWORD_FLAGS, + PROP_CA_CERT_PASSWORD_FLAGS, + NMSetting8021xPrivate, + ca_cert_password_flags); /** * NMSetting8021x:ca-path: @@ -3686,11 +3365,13 @@ nm_setting_802_1x_class_init(NMSetting8021xClass *klass) * description: The search path for the certificate. * ---end--- */ - obj_properties[PROP_CA_PATH] = g_param_spec_string(NM_SETTING_802_1X_CA_PATH, - "", - "", - NULL, - G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); + _nm_setting_property_define_direct_string(properties_override, + obj_properties, + NM_SETTING_802_1X_CA_PATH, + PROP_CA_PATH, + NM_SETTING_PARAM_NONE, + NMSetting8021xPrivate, + ca_path); /** * NMSetting8021x:subject-match: @@ -3708,12 +3389,13 @@ nm_setting_802_1x_class_init(NMSetting8021xClass *klass) * example: IEEE_8021X_SUBJECT_MATCH="Red Hat" * ---end--- */ - obj_properties[PROP_SUBJECT_MATCH] = - g_param_spec_string(NM_SETTING_802_1X_SUBJECT_MATCH, - "", - "", - NULL, - G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); + _nm_setting_property_define_direct_string(properties_override, + obj_properties, + NM_SETTING_802_1X_SUBJECT_MATCH, + PROP_SUBJECT_MATCH, + NM_SETTING_PARAM_NONE, + NMSetting8021xPrivate, + subject_match); /** * NMSetting8021x:altsubject-matches: @@ -3755,12 +3437,13 @@ nm_setting_802_1x_class_init(NMSetting8021xClass *klass) * variable: IEEE_8021X_DOMAIN_SUFFIX_MATCH(+) * ---end--- */ - obj_properties[PROP_DOMAIN_SUFFIX_MATCH] = - g_param_spec_string(NM_SETTING_802_1X_DOMAIN_SUFFIX_MATCH, - "", - "", - NULL, - G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); + _nm_setting_property_define_direct_string(properties_override, + obj_properties, + NM_SETTING_802_1X_DOMAIN_SUFFIX_MATCH, + PROP_DOMAIN_SUFFIX_MATCH, + NM_SETTING_PARAM_NONE, + NMSetting8021xPrivate, + domain_suffix_match); /** * NMSetting8021x:domain-match: @@ -3780,12 +3463,13 @@ nm_setting_802_1x_class_init(NMSetting8021xClass *klass) * variable: IEEE_8021X_DOMAIN_MATCH(+) * ---end--- */ - obj_properties[PROP_DOMAIN_MATCH] = - g_param_spec_string(NM_SETTING_802_1X_DOMAIN_MATCH, - "", - "", - NULL, - G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); + _nm_setting_property_define_direct_string(properties_override, + obj_properties, + NM_SETTING_802_1X_DOMAIN_MATCH, + PROP_DOMAIN_MATCH, + NM_SETTING_PARAM_NONE, + NMSetting8021xPrivate, + domain_match); /** * NMSetting8021x:client-cert: @@ -3810,12 +3494,13 @@ nm_setting_802_1x_class_init(NMSetting8021xClass *klass) * example: IEEE_8021X_CLIENT_CERT=/home/joe/mycert.crt * ---end--- */ - obj_properties[PROP_CLIENT_CERT] = - g_param_spec_boxed(NM_SETTING_802_1X_CLIENT_CERT, - "", - "", - G_TYPE_BYTES, - G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); + _nm_setting_property_define_direct_bytes(properties_override, + obj_properties, + NM_SETTING_802_1X_CLIENT_CERT, + PROP_CLIENT_CERT, + NM_SETTING_PARAM_NONE, + NMSetting8021xPrivate, + client_cert); /** * NMSetting8021x:client-cert-password: @@ -3829,12 +3514,13 @@ nm_setting_802_1x_class_init(NMSetting8021xClass *klass) /* ---ifcfg-rh--- * ---end--- */ - obj_properties[PROP_CLIENT_CERT_PASSWORD] = - g_param_spec_string(NM_SETTING_802_1X_CLIENT_CERT_PASSWORD, - "", - "", - NULL, - G_PARAM_READWRITE | NM_SETTING_PARAM_SECRET | G_PARAM_STATIC_STRINGS); + _nm_setting_property_define_direct_string(properties_override, + obj_properties, + NM_SETTING_802_1X_CLIENT_CERT_PASSWORD, + PROP_CLIENT_CERT_PASSWORD, + NM_SETTING_PARAM_SECRET, + NMSetting8021xPrivate, + client_cert_password); /** * NMSetting8021x:client-cert-password-flags: @@ -3846,13 +3532,12 @@ nm_setting_802_1x_class_init(NMSetting8021xClass *klass) /* ---ifcfg-rh--- * ---end--- */ - obj_properties[PROP_CLIENT_CERT_PASSWORD_FLAGS] = - g_param_spec_flags(NM_SETTING_802_1X_CLIENT_CERT_PASSWORD_FLAGS, - "", - "", - NM_TYPE_SETTING_SECRET_FLAGS, - NM_SETTING_SECRET_FLAG_NONE, - G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); + _nm_setting_property_define_direct_secret_flags(properties_override, + obj_properties, + NM_SETTING_802_1X_CLIENT_CERT_PASSWORD_FLAGS, + PROP_CLIENT_CERT_PASSWORD_FLAGS, + NMSetting8021xPrivate, + client_cert_password_flags); /** * NMSetting8021x:phase1-peapver: @@ -3871,12 +3556,13 @@ nm_setting_802_1x_class_init(NMSetting8021xClass *klass) * description: Use to force a specific PEAP version. * ---end--- */ - obj_properties[PROP_PHASE1_PEAPVER] = - g_param_spec_string(NM_SETTING_802_1X_PHASE1_PEAPVER, - "", - "", - NULL, - G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); + _nm_setting_property_define_direct_string(properties_override, + obj_properties, + NM_SETTING_802_1X_PHASE1_PEAPVER, + PROP_PHASE1_PEAPVER, + NM_SETTING_PARAM_NONE, + NMSetting8021xPrivate, + phase1_peapver); /** * NMSetting8021x:phase1-peaplabel: @@ -3894,12 +3580,13 @@ nm_setting_802_1x_class_init(NMSetting8021xClass *klass) * description: Use to force the new PEAP label during key derivation. * ---end--- */ - obj_properties[PROP_PHASE1_PEAPLABEL] = - g_param_spec_string(NM_SETTING_802_1X_PHASE1_PEAPLABEL, - "", - "", - NULL, - G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); + _nm_setting_property_define_direct_string(properties_override, + obj_properties, + NM_SETTING_802_1X_PHASE1_PEAPLABEL, + PROP_PHASE1_PEAPLABEL, + NM_SETTING_PARAM_NONE, + NMSetting8021xPrivate, + phase1_peaplabel); /** * NMSetting8021x:phase1-fast-provisioning: @@ -3919,12 +3606,13 @@ nm_setting_802_1x_class_init(NMSetting8021xClass *klass) * example: IEEE_8021X_FAST_PROVISIONING="allow-auth allow-unauth" * ---end--- */ - obj_properties[PROP_PHASE1_FAST_PROVISIONING] = - g_param_spec_string(NM_SETTING_802_1X_PHASE1_FAST_PROVISIONING, - "", - "", - NULL, - G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); + _nm_setting_property_define_direct_string(properties_override, + obj_properties, + NM_SETTING_802_1X_PHASE1_FAST_PROVISIONING, + PROP_PHASE1_FAST_PROVISIONING, + NM_SETTING_PARAM_NONE, + NMSetting8021xPrivate, + phase1_fast_provisioning); /** * NMSetting8021x:phase1-auth-flags: @@ -3946,14 +3634,16 @@ nm_setting_802_1x_class_init(NMSetting8021xClass *klass) * example: IEEE_8021X_PHASE1_AUTH_FLAGS="tls-1-0-disable tls-1-1-disable" * ---end--- */ - obj_properties[PROP_PHASE1_AUTH_FLAGS] = - g_param_spec_uint(NM_SETTING_802_1X_PHASE1_AUTH_FLAGS, - "", - "", - 0, - G_MAXUINT32, - NM_SETTING_802_1X_AUTH_FLAGS_NONE, - G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); + _nm_setting_property_define_direct_uint32(properties_override, + obj_properties, + NM_SETTING_802_1X_PHASE1_AUTH_FLAGS, + PROP_PHASE1_AUTH_FLAGS, + 0, + G_MAXUINT32, + NM_SETTING_802_1X_AUTH_FLAGS_NONE, + NM_SETTING_PARAM_NONE, + NMSetting8021xPrivate, + phase1_auth_flags); /** * NMSetting8021x:phase2-auth: @@ -3979,12 +3669,13 @@ nm_setting_802_1x_class_init(NMSetting8021xClass *klass) * example: IEEE_8021X_INNER_AUTH_METHODS=PAP * ---end--- */ - obj_properties[PROP_PHASE2_AUTH] = - g_param_spec_string(NM_SETTING_802_1X_PHASE2_AUTH, - "", - "", - NULL, - G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); + _nm_setting_property_define_direct_string(properties_override, + obj_properties, + NM_SETTING_802_1X_PHASE2_AUTH, + PROP_PHASE2_AUTH, + NM_SETTING_PARAM_NONE, + NMSetting8021xPrivate, + phase2_auth); /** * NMSetting8021x:phase2-autheap: @@ -4005,12 +3696,13 @@ nm_setting_802_1x_class_init(NMSetting8021xClass *klass) * example: IEEE_8021X_INNER_AUTH_METHODS="MSCHAPV2 EAP-TLS" * ---end--- */ - obj_properties[PROP_PHASE2_AUTHEAP] = - g_param_spec_string(NM_SETTING_802_1X_PHASE2_AUTHEAP, - "", - "", - NULL, - G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); + _nm_setting_property_define_direct_string(properties_override, + obj_properties, + NM_SETTING_802_1X_PHASE2_AUTHEAP, + PROP_PHASE2_AUTHEAP, + NM_SETTING_PARAM_NONE, + NMSetting8021xPrivate, + phase2_autheap); /** * NMSetting8021x:phase2-ca-cert: @@ -4034,12 +3726,13 @@ nm_setting_802_1x_class_init(NMSetting8021xClass *klass) * Setting this property directly is discouraged; use the * nm_setting_802_1x_set_phase2_ca_cert() function instead. **/ - obj_properties[PROP_PHASE2_CA_CERT] = - g_param_spec_boxed(NM_SETTING_802_1X_PHASE2_CA_CERT, - "", - "", - G_TYPE_BYTES, - G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); + _nm_setting_property_define_direct_bytes(properties_override, + obj_properties, + NM_SETTING_802_1X_PHASE2_CA_CERT, + PROP_PHASE2_CA_CERT, + NM_SETTING_PARAM_NONE, + NMSetting8021xPrivate, + phase2_ca_cert); /** * NMSetting8021x:phase2-ca-cert-password: @@ -4053,12 +3746,13 @@ nm_setting_802_1x_class_init(NMSetting8021xClass *klass) /* ---ifcfg-rh--- * ---end--- */ - obj_properties[PROP_PHASE2_CA_CERT_PASSWORD] = - g_param_spec_string(NM_SETTING_802_1X_PHASE2_CA_CERT_PASSWORD, - "", - "", - NULL, - G_PARAM_READWRITE | NM_SETTING_PARAM_SECRET | G_PARAM_STATIC_STRINGS); + _nm_setting_property_define_direct_string(properties_override, + obj_properties, + NM_SETTING_802_1X_PHASE2_CA_CERT_PASSWORD, + PROP_PHASE2_CA_CERT_PASSWORD, + NM_SETTING_PARAM_SECRET, + NMSetting8021xPrivate, + phase2_ca_cert_password); /** * NMSetting8021x:phase2-ca-cert-password-flags: @@ -4070,13 +3764,12 @@ nm_setting_802_1x_class_init(NMSetting8021xClass *klass) /* ---ifcfg-rh--- * ---end--- */ - obj_properties[PROP_PHASE2_CA_CERT_PASSWORD_FLAGS] = - g_param_spec_flags(NM_SETTING_802_1X_PHASE2_CA_CERT_PASSWORD_FLAGS, - "", - "", - NM_TYPE_SETTING_SECRET_FLAGS, - NM_SETTING_SECRET_FLAG_NONE, - G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); + _nm_setting_property_define_direct_secret_flags(properties_override, + obj_properties, + NM_SETTING_802_1X_PHASE2_CA_CERT_PASSWORD_FLAGS, + PROP_PHASE2_CA_CERT_PASSWORD_FLAGS, + NMSetting8021xPrivate, + phase2_ca_cert_password_flags); /** * NMSetting8021x:phase2-ca-path: @@ -4094,12 +3787,13 @@ nm_setting_802_1x_class_init(NMSetting8021xClass *klass) * description: The search path for the certificate. * ---end--- */ - obj_properties[PROP_PHASE2_CA_PATH] = - g_param_spec_string(NM_SETTING_802_1X_PHASE2_CA_PATH, - "", - "", - NULL, - G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); + _nm_setting_property_define_direct_string(properties_override, + obj_properties, + NM_SETTING_802_1X_PHASE2_CA_PATH, + PROP_PHASE2_CA_PATH, + NM_SETTING_PARAM_NONE, + NMSetting8021xPrivate, + phase2_ca_path); /** * NMSetting8021x:phase2-subject-match: @@ -4118,12 +3812,13 @@ nm_setting_802_1x_class_init(NMSetting8021xClass *klass) * example: IEEE_8021X_PHASE2_SUBJECT_MATCH="Red Hat" * ---end--- */ - obj_properties[PROP_PHASE2_SUBJECT_MATCH] = - g_param_spec_string(NM_SETTING_802_1X_PHASE2_SUBJECT_MATCH, - "", - "", - NULL, - G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); + _nm_setting_property_define_direct_string(properties_override, + obj_properties, + NM_SETTING_802_1X_PHASE2_SUBJECT_MATCH, + PROP_PHASE2_SUBJECT_MATCH, + NM_SETTING_PARAM_NONE, + NMSetting8021xPrivate, + phase2_subject_match); /** * NMSetting8021x:phase2-altsubject-matches: @@ -4165,12 +3860,13 @@ nm_setting_802_1x_class_init(NMSetting8021xClass *klass) * variable: IEEE_8021X_PHASE2_DOMAIN_SUFFIX_MATCH(+) * ---end--- */ - obj_properties[PROP_PHASE2_DOMAIN_SUFFIX_MATCH] = - g_param_spec_string(NM_SETTING_802_1X_PHASE2_DOMAIN_SUFFIX_MATCH, - "", - "", - NULL, - G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); + _nm_setting_property_define_direct_string(properties_override, + obj_properties, + NM_SETTING_802_1X_PHASE2_DOMAIN_SUFFIX_MATCH, + PROP_PHASE2_DOMAIN_SUFFIX_MATCH, + NM_SETTING_PARAM_NONE, + NMSetting8021xPrivate, + phase2_domain_suffix_match); /** * NMSetting8021x:phase2-domain-match: @@ -4191,12 +3887,13 @@ nm_setting_802_1x_class_init(NMSetting8021xClass *klass) * variable: IEEE_8021X_PHASE2_DOMAIN_MATCH(+) * ---end--- */ - obj_properties[PROP_PHASE2_DOMAIN_MATCH] = - g_param_spec_string(NM_SETTING_802_1X_PHASE2_DOMAIN_MATCH, - "", - "", - NULL, - G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); + _nm_setting_property_define_direct_string(properties_override, + obj_properties, + NM_SETTING_802_1X_PHASE2_DOMAIN_MATCH, + PROP_PHASE2_DOMAIN_MATCH, + NM_SETTING_PARAM_NONE, + NMSetting8021xPrivate, + phase2_domain_match); /** * NMSetting8021x:phase2-client-cert: @@ -4224,12 +3921,13 @@ nm_setting_802_1x_class_init(NMSetting8021xClass *klass) * example: IEEE_8021X_INNER_CLIENT_CERT=/home/joe/mycert.crt * ---end--- */ - obj_properties[PROP_PHASE2_CLIENT_CERT] = - g_param_spec_boxed(NM_SETTING_802_1X_PHASE2_CLIENT_CERT, - "", - "", - G_TYPE_BYTES, - G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); + _nm_setting_property_define_direct_bytes(properties_override, + obj_properties, + NM_SETTING_802_1X_PHASE2_CLIENT_CERT, + PROP_PHASE2_CLIENT_CERT, + NM_SETTING_PARAM_NONE, + NMSetting8021xPrivate, + phase2_client_cert); /** * NMSetting8021x:phase2-client-cert-password: @@ -4243,12 +3941,13 @@ nm_setting_802_1x_class_init(NMSetting8021xClass *klass) /* ---ifcfg-rh--- * ---end--- */ - obj_properties[PROP_PHASE2_CLIENT_CERT_PASSWORD] = - g_param_spec_string(NM_SETTING_802_1X_PHASE2_CLIENT_CERT_PASSWORD, - "", - "", - NULL, - G_PARAM_READWRITE | NM_SETTING_PARAM_SECRET | G_PARAM_STATIC_STRINGS); + _nm_setting_property_define_direct_string(properties_override, + obj_properties, + NM_SETTING_802_1X_PHASE2_CLIENT_CERT_PASSWORD, + PROP_PHASE2_CLIENT_CERT_PASSWORD, + NM_SETTING_PARAM_SECRET, + NMSetting8021xPrivate, + phase2_client_cert_password); /** * NMSetting8021x:phase2-client-cert-password-flags: @@ -4260,13 +3959,13 @@ nm_setting_802_1x_class_init(NMSetting8021xClass *klass) /* ---ifcfg-rh--- * ---end--- */ - obj_properties[PROP_PHASE2_CLIENT_CERT_PASSWORD_FLAGS] = - g_param_spec_flags(NM_SETTING_802_1X_PHASE2_CLIENT_CERT_PASSWORD_FLAGS, - "", - "", - NM_TYPE_SETTING_SECRET_FLAGS, - NM_SETTING_SECRET_FLAG_NONE, - G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); + _nm_setting_property_define_direct_secret_flags( + properties_override, + obj_properties, + NM_SETTING_802_1X_PHASE2_CLIENT_CERT_PASSWORD_FLAGS, + PROP_PHASE2_CLIENT_CERT_PASSWORD_FLAGS, + NMSetting8021xPrivate, + phase2_client_cert_password_flags); /** * NMSetting8021x:password: @@ -4282,12 +3981,13 @@ nm_setting_802_1x_class_init(NMSetting8021xClass *klass) * lookaside file, or it can be owned by a secret agent. * ---end--- */ - obj_properties[PROP_PASSWORD] = - g_param_spec_string(NM_SETTING_802_1X_PASSWORD, - "", - "", - NULL, - G_PARAM_READWRITE | NM_SETTING_PARAM_SECRET | G_PARAM_STATIC_STRINGS); + _nm_setting_property_define_direct_string(properties_override, + obj_properties, + NM_SETTING_802_1X_PASSWORD, + PROP_PASSWORD, + NM_SETTING_PARAM_SECRET, + NMSetting8021xPrivate, + password); /** * NMSetting8021x:password-flags: @@ -4301,13 +4001,12 @@ nm_setting_802_1x_class_init(NMSetting8021xClass *klass) * description: Password flags for IEEE_8021X_PASSWORD password. * ---end--- */ - obj_properties[PROP_PASSWORD_FLAGS] = - g_param_spec_flags(NM_SETTING_802_1X_PASSWORD_FLAGS, - "", - "", - NM_TYPE_SETTING_SECRET_FLAGS, - NM_SETTING_SECRET_FLAG_NONE, - G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); + _nm_setting_property_define_direct_secret_flags(properties_override, + obj_properties, + NM_SETTING_802_1X_PASSWORD_FLAGS, + PROP_PASSWORD_FLAGS, + NMSetting8021xPrivate, + password_flags); /** * NMSetting8021x:password-raw: @@ -4325,12 +4024,13 @@ nm_setting_802_1x_class_init(NMSetting8021xClass *klass) * example: IEEE_8021X_PASSWORD_RAW=041c8320083aa4bf * ---end--- */ - obj_properties[PROP_PASSWORD_RAW] = - g_param_spec_boxed(NM_SETTING_802_1X_PASSWORD_RAW, - "", - "", - G_TYPE_BYTES, - G_PARAM_READWRITE | NM_SETTING_PARAM_SECRET | G_PARAM_STATIC_STRINGS); + _nm_setting_property_define_direct_bytes(properties_override, + obj_properties, + NM_SETTING_802_1X_PASSWORD_RAW, + PROP_PASSWORD_RAW, + NM_SETTING_PARAM_SECRET, + NMSetting8021xPrivate, + password_raw); /** * NMSetting8021x:password-raw-flags: @@ -4343,13 +4043,12 @@ nm_setting_802_1x_class_init(NMSetting8021xClass *klass) * description: The secret flags for password-raw. * ---end--- */ - obj_properties[PROP_PASSWORD_RAW_FLAGS] = - g_param_spec_flags(NM_SETTING_802_1X_PASSWORD_RAW_FLAGS, - "", - "", - NM_TYPE_SETTING_SECRET_FLAGS, - NM_SETTING_SECRET_FLAG_NONE, - G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); + _nm_setting_property_define_direct_secret_flags(properties_override, + obj_properties, + NM_SETTING_802_1X_PASSWORD_RAW_FLAGS, + PROP_PASSWORD_RAW_FLAGS, + NMSetting8021xPrivate, + password_raw_flags); /** * NMSetting8021x:private-key: @@ -4389,12 +4088,13 @@ nm_setting_802_1x_class_init(NMSetting8021xClass *klass) * example: IEEE_8021X_PRIVATE_KEY=/home/joe/mykey.p12 * ---end--- */ - obj_properties[PROP_PRIVATE_KEY] = - g_param_spec_boxed(NM_SETTING_802_1X_PRIVATE_KEY, - "", - "", - G_TYPE_BYTES, - G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); + _nm_setting_property_define_direct_bytes(properties_override, + obj_properties, + NM_SETTING_802_1X_PRIVATE_KEY, + PROP_PRIVATE_KEY, + NM_SETTING_PARAM_NONE, + NMSetting8021xPrivate, + private_key); /** * NMSetting8021x:private-key-password: @@ -4413,12 +4113,13 @@ nm_setting_802_1x_class_init(NMSetting8021xClass *klass) * lookaside file, or it can be owned by a secret agent. * ---end--- */ - obj_properties[PROP_PRIVATE_KEY_PASSWORD] = - g_param_spec_string(NM_SETTING_802_1X_PRIVATE_KEY_PASSWORD, - "", - "", - NULL, - G_PARAM_READWRITE | NM_SETTING_PARAM_SECRET | G_PARAM_STATIC_STRINGS); + _nm_setting_property_define_direct_string(properties_override, + obj_properties, + NM_SETTING_802_1X_PRIVATE_KEY_PASSWORD, + PROP_PRIVATE_KEY_PASSWORD, + NM_SETTING_PARAM_SECRET, + NMSetting8021xPrivate, + private_key_password); /** * NMSetting8021x:private-key-password-flags: @@ -4433,13 +4134,12 @@ nm_setting_802_1x_class_init(NMSetting8021xClass *klass) * description: Password flags for IEEE_8021X_PRIVATE_KEY_PASSWORD password. * ---end--- */ - obj_properties[PROP_PRIVATE_KEY_PASSWORD_FLAGS] = - g_param_spec_flags(NM_SETTING_802_1X_PRIVATE_KEY_PASSWORD_FLAGS, - "", - "", - NM_TYPE_SETTING_SECRET_FLAGS, - NM_SETTING_SECRET_FLAG_NONE, - G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); + _nm_setting_property_define_direct_secret_flags(properties_override, + obj_properties, + NM_SETTING_802_1X_PRIVATE_KEY_PASSWORD_FLAGS, + PROP_PRIVATE_KEY_PASSWORD_FLAGS, + NMSetting8021xPrivate, + private_key_password_flags); /** * NMSetting8021x:phase2-private-key: @@ -4473,12 +4173,13 @@ nm_setting_802_1x_class_init(NMSetting8021xClass *klass) * description: Private key for inner authentication method for EAP-TLS. * ---end--- */ - obj_properties[PROP_PHASE2_PRIVATE_KEY] = - g_param_spec_boxed(NM_SETTING_802_1X_PHASE2_PRIVATE_KEY, - "", - "", - G_TYPE_BYTES, - G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); + _nm_setting_property_define_direct_bytes(properties_override, + obj_properties, + NM_SETTING_802_1X_PHASE2_PRIVATE_KEY, + PROP_PHASE2_PRIVATE_KEY, + NM_SETTING_PARAM_NONE, + NMSetting8021xPrivate, + phase2_private_key); /** * NMSetting8021x:phase2-private-key-password: @@ -4498,12 +4199,13 @@ nm_setting_802_1x_class_init(NMSetting8021xClass *klass) * lookaside file, or it can be owned by a secret agent. * ---end--- */ - obj_properties[PROP_PHASE2_PRIVATE_KEY_PASSWORD] = - g_param_spec_string(NM_SETTING_802_1X_PHASE2_PRIVATE_KEY_PASSWORD, - "", - "", - NULL, - G_PARAM_READWRITE | NM_SETTING_PARAM_SECRET | G_PARAM_STATIC_STRINGS); + _nm_setting_property_define_direct_string(properties_override, + obj_properties, + NM_SETTING_802_1X_PHASE2_PRIVATE_KEY_PASSWORD, + PROP_PHASE2_PRIVATE_KEY_PASSWORD, + NM_SETTING_PARAM_SECRET, + NMSetting8021xPrivate, + phase2_private_key_password); /** * NMSetting8021x:phase2-private-key-password-flags: @@ -4518,13 +4220,13 @@ nm_setting_802_1x_class_init(NMSetting8021xClass *klass) * description: Password flags for IEEE_8021X_INNER_PRIVATE_KEY_PASSWORD password. * ---end--- */ - obj_properties[PROP_PHASE2_PRIVATE_KEY_PASSWORD_FLAGS] = - g_param_spec_flags(NM_SETTING_802_1X_PHASE2_PRIVATE_KEY_PASSWORD_FLAGS, - "", - "", - NM_TYPE_SETTING_SECRET_FLAGS, - NM_SETTING_SECRET_FLAG_NONE, - G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); + _nm_setting_property_define_direct_secret_flags( + properties_override, + obj_properties, + NM_SETTING_802_1X_PHASE2_PRIVATE_KEY_PASSWORD_FLAGS, + PROP_PHASE2_PRIVATE_KEY_PASSWORD_FLAGS, + NMSetting8021xPrivate, + phase2_private_key_password_flags); /** * NMSetting8021x:pin: @@ -4537,12 +4239,13 @@ nm_setting_802_1x_class_init(NMSetting8021xClass *klass) * description: The pin secret used for EAP authentication methods. * ---end--- */ - obj_properties[PROP_PIN] = - g_param_spec_string(NM_SETTING_802_1X_PIN, - "", - "", - NULL, - G_PARAM_READWRITE | NM_SETTING_PARAM_SECRET | G_PARAM_STATIC_STRINGS); + _nm_setting_property_define_direct_string(properties_override, + obj_properties, + NM_SETTING_802_1X_PIN, + PROP_PIN, + NM_SETTING_PARAM_SECRET, + NMSetting8021xPrivate, + pin); /** * NMSetting8021x:pin-flags: @@ -4555,12 +4258,12 @@ nm_setting_802_1x_class_init(NMSetting8021xClass *klass) * description: The secret flags for the pin property. * ---end--- */ - obj_properties[PROP_PIN_FLAGS] = g_param_spec_flags(NM_SETTING_802_1X_PIN_FLAGS, - "", - "", - NM_TYPE_SETTING_SECRET_FLAGS, - NM_SETTING_SECRET_FLAG_NONE, - G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); + _nm_setting_property_define_direct_secret_flags(properties_override, + obj_properties, + NM_SETTING_802_1X_PIN_FLAGS, + PROP_PIN_FLAGS, + NMSetting8021xPrivate, + pin_flags); /** * NMSetting8021x:system-ca-certs: @@ -4605,14 +4308,16 @@ nm_setting_802_1x_class_init(NMSetting8021xClass *klass) * description: Timeout in seconds for the 802.1X authentication. Zero means the global default or 25. * ---end--- */ - obj_properties[PROP_AUTH_TIMEOUT] = g_param_spec_int( - NM_SETTING_802_1X_AUTH_TIMEOUT, - "", - "", - 0, - G_MAXINT32, - 0, - G_PARAM_READWRITE | NM_SETTING_PARAM_FUZZY_IGNORE | G_PARAM_STATIC_STRINGS); + _nm_setting_property_define_direct_int32(properties_override, + obj_properties, + NM_SETTING_802_1X_AUTH_TIMEOUT, + PROP_AUTH_TIMEOUT, + 0, + G_MAXINT32, + 0, + NM_SETTING_PARAM_FUZZY_IGNORE, + NMSetting8021xPrivate, + auth_timeout); /** * NMSetting8021x:optional: diff --git a/src/libnm-core-impl/nm-setting-adsl.c b/src/libnm-core-impl/nm-setting-adsl.c index b18dba827a..8e5dc8cfca 100644 --- a/src/libnm-core-impl/nm-setting-adsl.c +++ b/src/libnm-core-impl/nm-setting-adsl.c @@ -31,13 +31,13 @@ NM_GOBJECT_PROPERTIES_DEFINE_BASE(PROP_USERNAME, PROP_VCI, ); typedef struct { - char * username; - char * password; - NMSettingSecretFlags password_flags; - char * protocol; - char * encapsulation; - guint32 vpi; - guint32 vci; + char * username; + char * password; + char * protocol; + char * encapsulation; + guint password_flags; + guint32 vpi; + guint32 vci; } NMSettingAdslPrivate; /** @@ -243,81 +243,6 @@ need_secrets(NMSetting *setting) /*****************************************************************************/ -static void -get_property(GObject *object, guint prop_id, GValue *value, GParamSpec *pspec) -{ - NMSettingAdsl *setting = NM_SETTING_ADSL(object); - - switch (prop_id) { - case PROP_USERNAME: - g_value_set_string(value, nm_setting_adsl_get_username(setting)); - break; - case PROP_PASSWORD: - g_value_set_string(value, nm_setting_adsl_get_password(setting)); - break; - case PROP_PASSWORD_FLAGS: - g_value_set_flags(value, nm_setting_adsl_get_password_flags(setting)); - break; - case PROP_PROTOCOL: - g_value_set_string(value, nm_setting_adsl_get_protocol(setting)); - break; - case PROP_ENCAPSULATION: - g_value_set_string(value, nm_setting_adsl_get_encapsulation(setting)); - break; - case PROP_VPI: - g_value_set_uint(value, nm_setting_adsl_get_vpi(setting)); - break; - case PROP_VCI: - g_value_set_uint(value, nm_setting_adsl_get_vci(setting)); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec); - break; - } -} - -static void -set_property(GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec) -{ - NMSettingAdslPrivate *priv = NM_SETTING_ADSL_GET_PRIVATE(object); - const char * str; - - switch (prop_id) { - case PROP_USERNAME: - g_free(priv->username); - priv->username = g_value_dup_string(value); - break; - case PROP_PASSWORD: - g_free(priv->password); - priv->password = g_value_dup_string(value); - break; - case PROP_PASSWORD_FLAGS: - priv->password_flags = g_value_get_flags(value); - break; - case PROP_PROTOCOL: - g_free(priv->protocol); - str = g_value_get_string(value); - priv->protocol = str ? g_ascii_strdown(str, -1) : NULL; - break; - case PROP_ENCAPSULATION: - g_free(priv->encapsulation); - str = g_value_get_string(value); - priv->encapsulation = str ? g_ascii_strdown(str, -1) : NULL; - break; - case PROP_VPI: - priv->vpi = g_value_get_uint(value); - break; - case PROP_VCI: - priv->vci = g_value_get_uint(value); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec); - break; - } -} - -/*****************************************************************************/ - static void nm_setting_adsl_init(NMSettingAdsl *setting) {} @@ -344,8 +269,8 @@ nm_setting_adsl_class_init(NMSettingAdslClass *klass) g_type_class_add_private(klass, sizeof(NMSettingAdslPrivate)); - object_class->get_property = get_property; - object_class->set_property = set_property; + object_class->get_property = _nm_setting_property_get_property_direct; + object_class->set_property = _nm_setting_property_set_property_direct; setting_class->verify = verify; setting_class->verify_secrets = verify_secrets; @@ -382,13 +307,12 @@ nm_setting_adsl_class_init(NMSettingAdslClass *klass) * * Flags indicating how to handle the #NMSettingAdsl:password property. **/ - obj_properties[PROP_PASSWORD_FLAGS] = - g_param_spec_flags(NM_SETTING_ADSL_PASSWORD_FLAGS, - "", - "", - NM_TYPE_SETTING_SECRET_FLAGS, - NM_SETTING_SECRET_FLAG_NONE, - G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); + _nm_setting_property_define_direct_secret_flags(properties_override, + obj_properties, + NM_SETTING_ADSL_PASSWORD_FLAGS, + PROP_PASSWORD_FLAGS, + NMSettingAdslPrivate, + password_flags); /** * NMSettingAdsl:protocol: @@ -423,26 +347,32 @@ nm_setting_adsl_class_init(NMSettingAdslClass *klass) * * VPI of ADSL connection **/ - obj_properties[PROP_VPI] = g_param_spec_uint(NM_SETTING_ADSL_VPI, - "", - "", - 0, - 65536, - 0, - G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); + _nm_setting_property_define_direct_uint32(properties_override, + obj_properties, + NM_SETTING_ADSL_VPI, + PROP_VPI, + 0, + 65536, + 0, + NM_SETTING_PARAM_NONE, + NMSettingAdslPrivate, + vpi); /** * NMSettingAdsl:vci: * * VCI of ADSL connection **/ - obj_properties[PROP_VCI] = g_param_spec_uint(NM_SETTING_ADSL_VCI, - "", - "", - 0, - 65536, - 0, - G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); + _nm_setting_property_define_direct_uint32(properties_override, + obj_properties, + NM_SETTING_ADSL_VCI, + PROP_VCI, + 0, + 65536, + 0, + NM_SETTING_PARAM_NONE, + NMSettingAdslPrivate, + vci); g_object_class_install_properties(object_class, _PROPERTY_ENUMS_LAST, obj_properties); diff --git a/src/libnm-core-impl/nm-setting-bridge-port.c b/src/libnm-core-impl/nm-setting-bridge-port.c index 5b70103b82..48ad74a143 100644 --- a/src/libnm-core-impl/nm-setting-bridge-port.c +++ b/src/libnm-core-impl/nm-setting-bridge-port.c @@ -34,8 +34,8 @@ NM_GOBJECT_PROPERTIES_DEFINE(NMSettingBridgePort, typedef struct { GPtrArray *vlans; - guint16 priority; - guint16 path_cost; + guint32 priority; + guint32 path_cost; bool hairpin_mode; } NMSettingBridgePortPrivate; @@ -385,15 +385,6 @@ get_property(GObject *object, guint prop_id, GValue *value, GParamSpec *pspec) NMSettingBridgePortPrivate *priv = NM_SETTING_BRIDGE_PORT_GET_PRIVATE(object); switch (prop_id) { - case PROP_PRIORITY: - g_value_set_uint(value, priv->priority); - break; - case PROP_PATH_COST: - g_value_set_uint(value, priv->path_cost); - break; - case PROP_HAIRPIN_MODE: - g_value_set_boolean(value, priv->hairpin_mode); - break; case PROP_VLANS: g_value_take_boxed(value, _nm_utils_copy_array(priv->vlans, @@ -401,7 +392,7 @@ get_property(GObject *object, guint prop_id, GValue *value, GParamSpec *pspec) (GDestroyNotify) nm_bridge_vlan_unref)); break; default: - G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec); + _nm_setting_property_get_property_direct(object, prop_id, value, pspec); break; } } @@ -412,15 +403,6 @@ set_property(GObject *object, guint prop_id, const GValue *value, GParamSpec *ps NMSettingBridgePortPrivate *priv = NM_SETTING_BRIDGE_PORT_GET_PRIVATE(object); switch (prop_id) { - case PROP_PRIORITY: - priv->priority = g_value_get_uint(value); - break; - case PROP_PATH_COST: - priv->path_cost = g_value_get_uint(value); - break; - case PROP_HAIRPIN_MODE: - priv->hairpin_mode = g_value_get_boolean(value); - break; case PROP_VLANS: g_ptr_array_unref(priv->vlans); priv->vlans = _nm_utils_copy_array(g_value_get_boxed(value), @@ -428,7 +410,7 @@ set_property(GObject *object, guint prop_id, const GValue *value, GParamSpec *ps (GDestroyNotify) nm_bridge_vlan_unref); break; default: - G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec); + _nm_setting_property_set_property_direct(object, prop_id, value, pspec); break; } } @@ -441,9 +423,6 @@ nm_setting_bridge_port_init(NMSettingBridgePort *setting) NMSettingBridgePortPrivate *priv = NM_SETTING_BRIDGE_PORT_GET_PRIVATE(setting); priv->vlans = g_ptr_array_new_with_free_func((GDestroyNotify) nm_bridge_vlan_unref); - - priv->priority = NM_BRIDGE_PORT_PRIORITY_DEF; - priv->path_cost = NM_BRIDGE_PORT_PATH_COST_DEF; } /** @@ -478,9 +457,9 @@ nm_setting_bridge_port_class_init(NMSettingBridgePortClass *klass) g_type_class_add_private(klass, sizeof(NMSettingBridgePortPrivate)); - object_class->finalize = finalize; object_class->get_property = get_property; object_class->set_property = set_property; + object_class->finalize = finalize; setting_class->verify = verify; @@ -497,14 +476,16 @@ nm_setting_bridge_port_class_init(NMSettingBridgePortClass *klass) * description: STP priority. * ---end--- */ - obj_properties[PROP_PRIORITY] = - g_param_spec_uint(NM_SETTING_BRIDGE_PORT_PRIORITY, - "", - "", - NM_BRIDGE_PORT_PRIORITY_MIN, - NM_BRIDGE_PORT_PRIORITY_MAX, - NM_BRIDGE_PORT_PRIORITY_DEF, - G_PARAM_READWRITE | NM_SETTING_PARAM_INFERRABLE | G_PARAM_STATIC_STRINGS); + _nm_setting_property_define_direct_uint32(properties_override, + obj_properties, + NM_SETTING_BRIDGE_PORT_PRIORITY, + PROP_PRIORITY, + NM_BRIDGE_PORT_PRIORITY_MIN, + NM_BRIDGE_PORT_PRIORITY_MAX, + NM_BRIDGE_PORT_PRIORITY_DEF, + NM_SETTING_PARAM_INFERRABLE, + NMSettingBridgePortPrivate, + priority); /** * NMSettingBridgePort:path-cost: @@ -520,13 +501,16 @@ nm_setting_bridge_port_class_init(NMSettingBridgePortClass *klass) * description: STP cost. * ---end--- */ - obj_properties[PROP_PATH_COST] = g_param_spec_uint(NM_SETTING_BRIDGE_PORT_PATH_COST, - "", - "", - NM_BRIDGE_PORT_PATH_COST_MIN, - NM_BRIDGE_PORT_PATH_COST_MAX, - NM_BRIDGE_PORT_PATH_COST_DEF, - G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); + _nm_setting_property_define_direct_uint32(properties_override, + obj_properties, + NM_SETTING_BRIDGE_PORT_PATH_COST, + PROP_PATH_COST, + NM_BRIDGE_PORT_PATH_COST_MIN, + NM_BRIDGE_PORT_PATH_COST_MAX, + NM_BRIDGE_PORT_PATH_COST_DEF, + NM_SETTING_PARAM_NONE, + NMSettingBridgePortPrivate, + path_cost); /** * NMSettingBridgePort:hairpin-mode: diff --git a/src/libnm-core-impl/nm-setting-bridge.c b/src/libnm-core-impl/nm-setting-bridge.c index 7c86d30af5..9045d6196f 100644 --- a/src/libnm-core-impl/nm-setting-bridge.c +++ b/src/libnm-core-impl/nm-setting-bridge.c @@ -71,12 +71,12 @@ typedef struct { guint32 multicast_hash_max; guint32 multicast_last_member_count; guint32 multicast_startup_query_count; - guint16 priority; - guint16 forward_delay; - guint16 hello_time; - guint16 max_age; - guint16 vlan_default_pvid; - guint16 group_forward_mask; + guint32 priority; + guint32 forward_delay; + guint32 hello_time; + guint32 max_age; + guint32 group_forward_mask; + guint32 vlan_default_pvid; bool stp; bool multicast_snooping; bool vlan_filtering; @@ -1231,7 +1231,7 @@ verify(NMSetting *setting, NMConnection *connection, GError **error) error)) return FALSE; - if (priv->group_forward_mask & 7) { + if (priv->group_forward_mask & 7u) { g_set_error_literal(error, NM_CONNECTION_ERROR, NM_CONNECTION_ERROR_INVALID_PROPERTY, @@ -1329,88 +1329,9 @@ compare_fcn_vlans(_NM_SETT_INFO_PROP_COMPARE_FCN_ARGS _nm_nil) static void get_property(GObject *object, guint prop_id, GValue *value, GParamSpec *pspec) { - NMSettingBridgePrivate *priv = NM_SETTING_BRIDGE_GET_PRIVATE(object); - NMSettingBridge * setting = NM_SETTING_BRIDGE(object); + NMSettingBridgePrivate *priv = NM_SETTING_BRIDGE_GET_PRIVATE(object); switch (prop_id) { - case PROP_MAC_ADDRESS: - g_value_set_string(value, nm_setting_bridge_get_mac_address(setting)); - break; - case PROP_STP: - g_value_set_boolean(value, priv->stp); - break; - case PROP_PRIORITY: - g_value_set_uint(value, priv->priority); - break; - case PROP_FORWARD_DELAY: - g_value_set_uint(value, priv->forward_delay); - break; - case PROP_HELLO_TIME: - g_value_set_uint(value, priv->hello_time); - break; - case PROP_MAX_AGE: - g_value_set_uint(value, priv->max_age); - break; - case PROP_AGEING_TIME: - g_value_set_uint(value, priv->ageing_time); - break; - case PROP_GROUP_ADDRESS: - g_value_set_string(value, priv->group_address); - break; - case PROP_GROUP_FORWARD_MASK: - g_value_set_uint(value, priv->group_forward_mask); - break; - case PROP_MULTICAST_HASH_MAX: - g_value_set_uint(value, priv->multicast_hash_max); - break; - case PROP_MULTICAST_LAST_MEMBER_COUNT: - g_value_set_uint(value, priv->multicast_last_member_count); - break; - case PROP_MULTICAST_LAST_MEMBER_INTERVAL: - g_value_set_uint64(value, priv->multicast_last_member_interval); - break; - case PROP_MULTICAST_MEMBERSHIP_INTERVAL: - g_value_set_uint64(value, priv->multicast_membership_interval); - break; - case PROP_MULTICAST_SNOOPING: - g_value_set_boolean(value, priv->multicast_snooping); - break; - case PROP_MULTICAST_ROUTER: - g_value_set_string(value, priv->multicast_router); - break; - case PROP_MULTICAST_QUERIER: - g_value_set_boolean(value, priv->multicast_querier); - break; - case PROP_MULTICAST_QUERIER_INTERVAL: - g_value_set_uint64(value, priv->multicast_querier_interval); - break; - case PROP_MULTICAST_QUERY_INTERVAL: - g_value_set_uint64(value, priv->multicast_query_interval); - break; - case PROP_MULTICAST_QUERY_RESPONSE_INTERVAL: - g_value_set_uint64(value, priv->multicast_query_response_interval); - break; - case PROP_MULTICAST_QUERY_USE_IFADDR: - g_value_set_boolean(value, priv->multicast_query_use_ifaddr); - break; - case PROP_MULTICAST_STARTUP_QUERY_COUNT: - g_value_set_uint(value, priv->multicast_startup_query_count); - break; - case PROP_MULTICAST_STARTUP_QUERY_INTERVAL: - g_value_set_uint64(value, priv->multicast_startup_query_interval); - break; - case PROP_VLAN_FILTERING: - g_value_set_boolean(value, priv->vlan_filtering); - break; - case PROP_VLAN_DEFAULT_PVID: - g_value_set_uint(value, priv->vlan_default_pvid); - break; - case PROP_VLAN_PROTOCOL: - g_value_set_string(value, priv->vlan_protocol); - break; - case PROP_VLAN_STATS_ENABLED: - g_value_set_boolean(value, priv->vlan_stats_enabled); - break; case PROP_VLANS: g_value_take_boxed(value, _nm_utils_copy_array(priv->vlans, @@ -1418,7 +1339,7 @@ get_property(GObject *object, guint prop_id, GValue *value, GParamSpec *pspec) (GDestroyNotify) nm_bridge_vlan_unref)); break; default: - G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec); + _nm_setting_property_get_property_direct(object, prop_id, value, pspec); break; } } @@ -1429,90 +1350,6 @@ set_property(GObject *object, guint prop_id, const GValue *value, GParamSpec *ps NMSettingBridgePrivate *priv = NM_SETTING_BRIDGE_GET_PRIVATE(object); switch (prop_id) { - case PROP_MAC_ADDRESS: - g_free(priv->mac_address); - priv->mac_address = - _nm_utils_hwaddr_canonical_or_invalid(g_value_get_string(value), ETH_ALEN); - break; - case PROP_STP: - priv->stp = g_value_get_boolean(value); - break; - case PROP_PRIORITY: - priv->priority = (guint16) g_value_get_uint(value); - break; - case PROP_FORWARD_DELAY: - priv->forward_delay = (guint16) g_value_get_uint(value); - break; - case PROP_HELLO_TIME: - priv->hello_time = (guint16) g_value_get_uint(value); - break; - case PROP_MAX_AGE: - priv->max_age = (guint16) g_value_get_uint(value); - break; - case PROP_AGEING_TIME: - priv->ageing_time = g_value_get_uint(value); - break; - case PROP_GROUP_ADDRESS: - g_free(priv->group_address); - priv->group_address = - _nm_utils_hwaddr_canonical_or_invalid(g_value_get_string(value), ETH_ALEN); - break; - case PROP_GROUP_FORWARD_MASK: - priv->group_forward_mask = (guint16) g_value_get_uint(value); - break; - case PROP_MULTICAST_HASH_MAX: - priv->multicast_hash_max = g_value_get_uint(value); - break; - case PROP_MULTICAST_LAST_MEMBER_COUNT: - priv->multicast_last_member_count = g_value_get_uint(value); - break; - case PROP_MULTICAST_LAST_MEMBER_INTERVAL: - priv->multicast_last_member_interval = g_value_get_uint64(value); - break; - case PROP_MULTICAST_MEMBERSHIP_INTERVAL: - priv->multicast_membership_interval = g_value_get_uint64(value); - break; - case PROP_MULTICAST_SNOOPING: - priv->multicast_snooping = g_value_get_boolean(value); - break; - case PROP_MULTICAST_ROUTER: - g_free(priv->multicast_router); - priv->multicast_router = g_value_dup_string(value); - break; - case PROP_MULTICAST_QUERIER: - priv->multicast_querier = g_value_get_boolean(value); - break; - case PROP_MULTICAST_QUERIER_INTERVAL: - priv->multicast_querier_interval = g_value_get_uint64(value); - break; - case PROP_MULTICAST_QUERY_INTERVAL: - priv->multicast_query_interval = g_value_get_uint64(value); - break; - case PROP_MULTICAST_QUERY_RESPONSE_INTERVAL: - priv->multicast_query_response_interval = g_value_get_uint64(value); - break; - case PROP_MULTICAST_QUERY_USE_IFADDR: - priv->multicast_query_use_ifaddr = g_value_get_boolean(value); - break; - case PROP_MULTICAST_STARTUP_QUERY_COUNT: - priv->multicast_startup_query_count = g_value_get_uint(value); - break; - case PROP_MULTICAST_STARTUP_QUERY_INTERVAL: - priv->multicast_startup_query_interval = g_value_get_uint64(value); - break; - case PROP_VLAN_FILTERING: - priv->vlan_filtering = g_value_get_boolean(value); - break; - case PROP_VLAN_DEFAULT_PVID: - priv->vlan_default_pvid = g_value_get_uint(value); - break; - case PROP_VLAN_PROTOCOL: - g_free(priv->vlan_protocol); - priv->vlan_protocol = g_value_dup_string(value); - break; - case PROP_VLAN_STATS_ENABLED: - priv->vlan_stats_enabled = g_value_get_boolean(value); - break; case PROP_VLANS: g_ptr_array_unref(priv->vlans); priv->vlans = _nm_utils_copy_array(g_value_get_boxed(value), @@ -1520,7 +1357,7 @@ set_property(GObject *object, guint prop_id, const GValue *value, GParamSpec *ps (GDestroyNotify) nm_bridge_vlan_unref); break; default: - G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec); + _nm_setting_property_set_property_direct(object, prop_id, value, pspec); break; } } @@ -1533,22 +1370,6 @@ nm_setting_bridge_init(NMSettingBridge *setting) NMSettingBridgePrivate *priv = NM_SETTING_BRIDGE_GET_PRIVATE(setting); priv->vlans = g_ptr_array_new_with_free_func((GDestroyNotify) nm_bridge_vlan_unref); - - priv->ageing_time = NM_BRIDGE_AGEING_TIME_DEF; - priv->forward_delay = NM_BRIDGE_FORWARD_DELAY_DEF; - priv->hello_time = NM_BRIDGE_HELLO_TIME_DEF; - priv->max_age = NM_BRIDGE_MAX_AGE_DEF; - priv->multicast_last_member_count = NM_BRIDGE_MULTICAST_LAST_MEMBER_COUNT_DEF; - priv->multicast_last_member_interval = NM_BRIDGE_MULTICAST_LAST_MEMBER_INTERVAL_DEF; - priv->multicast_membership_interval = NM_BRIDGE_MULTICAST_MEMBERSHIP_INTERVAL_DEF; - priv->multicast_hash_max = NM_BRIDGE_MULTICAST_HASH_MAX_DEF; - priv->priority = NM_BRIDGE_PRIORITY_DEF; - priv->vlan_default_pvid = NM_BRIDGE_VLAN_DEFAULT_PVID_DEF; - priv->multicast_query_interval = NM_BRIDGE_MULTICAST_QUERY_INTERVAL_DEF; - priv->multicast_query_response_interval = NM_BRIDGE_MULTICAST_QUERY_RESPONSE_INTERVAL_DEF; - priv->multicast_querier_interval = NM_BRIDGE_MULTICAST_QUERIER_INTERVAL_DEF; - priv->multicast_startup_query_count = NM_BRIDGE_MULTICAST_STARTUP_QUERY_COUNT_DEF; - priv->multicast_startup_query_interval = NM_BRIDGE_MULTICAST_STARTUP_QUERY_INTERVAL_DEF; } /** @@ -1569,8 +1390,6 @@ finalize(GObject *object) { NMSettingBridgePrivate *priv = NM_SETTING_BRIDGE_GET_PRIVATE(object); - g_free(priv->multicast_router); - g_free(priv->vlan_protocol); g_ptr_array_unref(priv->vlans); G_OBJECT_CLASS(nm_setting_bridge_parent_class)->finalize(object); @@ -1664,14 +1483,16 @@ nm_setting_bridge_class_init(NMSettingBridgeClass *klass) * description: STP priority. * ---end--- */ - obj_properties[PROP_PRIORITY] = - g_param_spec_uint(NM_SETTING_BRIDGE_PRIORITY, - "", - "", - NM_BRIDGE_PRIORITY_MIN, - NM_BRIDGE_PRIORITY_MAX, - NM_BRIDGE_PRIORITY_DEF, - G_PARAM_READWRITE | NM_SETTING_PARAM_INFERRABLE | G_PARAM_STATIC_STRINGS); + _nm_setting_property_define_direct_uint32(properties_override, + obj_properties, + NM_SETTING_BRIDGE_PRIORITY, + PROP_PRIORITY, + NM_BRIDGE_PRIORITY_MIN, + NM_BRIDGE_PRIORITY_MAX, + NM_BRIDGE_PRIORITY_DEF, + NM_SETTING_PARAM_INFERRABLE, + NMSettingBridgePrivate, + priority); /** * NMSettingBridge:forward-delay: @@ -1686,14 +1507,16 @@ nm_setting_bridge_class_init(NMSettingBridgeClass *klass) * description: STP forwarding delay. * ---end--- */ - obj_properties[PROP_FORWARD_DELAY] = - g_param_spec_uint(NM_SETTING_BRIDGE_FORWARD_DELAY, - "", - "", - 0, - NM_BRIDGE_FORWARD_DELAY_MAX, - NM_BRIDGE_FORWARD_DELAY_DEF, - G_PARAM_READWRITE | NM_SETTING_PARAM_INFERRABLE | G_PARAM_STATIC_STRINGS); + _nm_setting_property_define_direct_uint32(properties_override, + obj_properties, + NM_SETTING_BRIDGE_FORWARD_DELAY, + PROP_FORWARD_DELAY, + 0, + NM_BRIDGE_FORWARD_DELAY_MAX, + NM_BRIDGE_FORWARD_DELAY_DEF, + NM_SETTING_PARAM_INFERRABLE, + NMSettingBridgePrivate, + forward_delay); /** * NMSettingBridge:hello-time: @@ -1708,14 +1531,16 @@ nm_setting_bridge_class_init(NMSettingBridgeClass *klass) * description: STP hello time. * ---end--- */ - obj_properties[PROP_HELLO_TIME] = - g_param_spec_uint(NM_SETTING_BRIDGE_HELLO_TIME, - "", - "", - 0, - NM_BRIDGE_HELLO_TIME_MAX, - NM_BRIDGE_HELLO_TIME_DEF, - G_PARAM_READWRITE | NM_SETTING_PARAM_INFERRABLE | G_PARAM_STATIC_STRINGS); + _nm_setting_property_define_direct_uint32(properties_override, + obj_properties, + NM_SETTING_BRIDGE_HELLO_TIME, + PROP_HELLO_TIME, + 0, + NM_BRIDGE_HELLO_TIME_MAX, + NM_BRIDGE_HELLO_TIME_DEF, + NM_SETTING_PARAM_INFERRABLE, + NMSettingBridgePrivate, + hello_time); /** * NMSettingBridge:max-age: @@ -1730,14 +1555,16 @@ nm_setting_bridge_class_init(NMSettingBridgeClass *klass) * description: STP maximum message age. * ---end--- */ - obj_properties[PROP_MAX_AGE] = - g_param_spec_uint(NM_SETTING_BRIDGE_MAX_AGE, - "", - "", - 0, - NM_BRIDGE_MAX_AGE_MAX, - NM_BRIDGE_MAX_AGE_DEF, - G_PARAM_READWRITE | NM_SETTING_PARAM_INFERRABLE | G_PARAM_STATIC_STRINGS); + _nm_setting_property_define_direct_uint32(properties_override, + obj_properties, + NM_SETTING_BRIDGE_MAX_AGE, + PROP_MAX_AGE, + 0, + NM_BRIDGE_MAX_AGE_MAX, + NM_BRIDGE_MAX_AGE_DEF, + NM_SETTING_PARAM_INFERRABLE, + NMSettingBridgePrivate, + max_age); /** * NMSettingBridge:ageing-time: @@ -1752,14 +1579,16 @@ nm_setting_bridge_class_init(NMSettingBridgeClass *klass) * description: Ethernet MAC ageing time. * ---end--- */ - obj_properties[PROP_AGEING_TIME] = - g_param_spec_uint(NM_SETTING_BRIDGE_AGEING_TIME, - "", - "", - NM_BRIDGE_AGEING_TIME_MIN, - NM_BRIDGE_AGEING_TIME_MAX, - NM_BRIDGE_AGEING_TIME_DEF, - G_PARAM_READWRITE | NM_SETTING_PARAM_INFERRABLE | G_PARAM_STATIC_STRINGS); + _nm_setting_property_define_direct_uint32(properties_override, + obj_properties, + NM_SETTING_BRIDGE_AGEING_TIME, + PROP_AGEING_TIME, + NM_BRIDGE_AGEING_TIME_MIN, + NM_BRIDGE_AGEING_TIME_MAX, + NM_BRIDGE_AGEING_TIME_DEF, + NM_SETTING_PARAM_INFERRABLE, + NMSettingBridgePrivate, + ageing_time); /** * NMSettingBridge:group-forward-mask: @@ -1773,14 +1602,16 @@ nm_setting_bridge_class_init(NMSettingBridgeClass *klass) * * Since: 1.10 **/ - obj_properties[PROP_GROUP_FORWARD_MASK] = - g_param_spec_uint(NM_SETTING_BRIDGE_GROUP_FORWARD_MASK, - "", - "", - 0, - 0xFFFF, - 0, - G_PARAM_READWRITE | NM_SETTING_PARAM_INFERRABLE | G_PARAM_STATIC_STRINGS); + _nm_setting_property_define_direct_uint32(properties_override, + obj_properties, + NM_SETTING_BRIDGE_GROUP_FORWARD_MASK, + PROP_GROUP_FORWARD_MASK, + 0, + 0xFFFF, + 0, + NM_SETTING_PARAM_INFERRABLE, + NMSettingBridgePrivate, + group_forward_mask); /** * NMSettingBridge:multicast-snooping: @@ -1849,14 +1680,16 @@ nm_setting_bridge_class_init(NMSettingBridgeClass *klass) * description: default VLAN PVID. * ---end--- */ - obj_properties[PROP_VLAN_DEFAULT_PVID] = - g_param_spec_uint(NM_SETTING_BRIDGE_VLAN_DEFAULT_PVID, - "", - "", - 0, - NM_BRIDGE_VLAN_VID_MAX, - NM_BRIDGE_VLAN_DEFAULT_PVID_DEF, - G_PARAM_READWRITE | NM_SETTING_PARAM_INFERRABLE | G_PARAM_STATIC_STRINGS); + _nm_setting_property_define_direct_uint32(properties_override, + obj_properties, + NM_SETTING_BRIDGE_VLAN_DEFAULT_PVID, + PROP_VLAN_DEFAULT_PVID, + 0, + NM_BRIDGE_VLAN_VID_MAX, + NM_BRIDGE_VLAN_DEFAULT_PVID_DEF, + NM_SETTING_PARAM_INFERRABLE, + NMSettingBridgePrivate, + vlan_default_pvid); /** * NMSettingBridge:vlans: (type GPtrArray(NMBridgeVlan)) @@ -1954,12 +1787,13 @@ nm_setting_bridge_class_init(NMSettingBridgeClass *klass) * * Since: 1.24 */ - obj_properties[PROP_VLAN_PROTOCOL] = g_param_spec_string( - NM_SETTING_BRIDGE_VLAN_PROTOCOL, - "", - "", - NULL, - G_PARAM_READWRITE | NM_SETTING_PARAM_INFERRABLE | G_PARAM_STATIC_STRINGS); + _nm_setting_property_define_direct_string(properties_override, + obj_properties, + NM_SETTING_BRIDGE_VLAN_PROTOCOL, + PROP_VLAN_PROTOCOL, + NM_SETTING_PARAM_INFERRABLE, + NMSettingBridgePrivate, + vlan_protocol); /** * NMSettingBridge:vlan-stats-enabled: @@ -2004,12 +1838,13 @@ nm_setting_bridge_class_init(NMSettingBridgeClass *klass) * * Since: 1.24 */ - obj_properties[PROP_MULTICAST_ROUTER] = g_param_spec_string( - NM_SETTING_BRIDGE_MULTICAST_ROUTER, - "", - "", - NULL, - G_PARAM_READWRITE | NM_SETTING_PARAM_INFERRABLE | G_PARAM_STATIC_STRINGS); + _nm_setting_property_define_direct_string(properties_override, + obj_properties, + NM_SETTING_BRIDGE_MULTICAST_ROUTER, + PROP_MULTICAST_ROUTER, + NM_SETTING_PARAM_INFERRABLE, + NMSettingBridgePrivate, + multicast_router); /** * NMSettingBridge:multicast-query-use-ifaddr: @@ -2074,14 +1909,16 @@ nm_setting_bridge_class_init(NMSettingBridgeClass *klass) * * Since: 1.26 */ - obj_properties[PROP_MULTICAST_HASH_MAX] = - g_param_spec_uint(NM_SETTING_BRIDGE_MULTICAST_HASH_MAX, - "", - "", - NM_BRIDGE_MULTICAST_HASH_MAX_MIN, - NM_BRIDGE_MULTICAST_HASH_MAX_MAX, - NM_BRIDGE_MULTICAST_HASH_MAX_DEF, - G_PARAM_READWRITE | NM_SETTING_PARAM_INFERRABLE | G_PARAM_STATIC_STRINGS); + _nm_setting_property_define_direct_uint32(properties_override, + obj_properties, + NM_SETTING_BRIDGE_MULTICAST_HASH_MAX, + PROP_MULTICAST_HASH_MAX, + NM_BRIDGE_MULTICAST_HASH_MAX_MIN, + NM_BRIDGE_MULTICAST_HASH_MAX_MAX, + NM_BRIDGE_MULTICAST_HASH_MAX_DEF, + NM_SETTING_PARAM_INFERRABLE, + NMSettingBridgePrivate, + multicast_hash_max); /** * NMSettingBridge:multicast-last-member-count: @@ -2099,14 +1936,16 @@ nm_setting_bridge_class_init(NMSettingBridgeClass *klass) * * Since: 1.26 */ - obj_properties[PROP_MULTICAST_LAST_MEMBER_COUNT] = - g_param_spec_uint(NM_SETTING_BRIDGE_MULTICAST_LAST_MEMBER_COUNT, - "", - "", - NM_BRIDGE_MULTICAST_LAST_MEMBER_COUNT_MIN, - NM_BRIDGE_MULTICAST_LAST_MEMBER_COUNT_MAX, - NM_BRIDGE_MULTICAST_LAST_MEMBER_COUNT_DEF, - G_PARAM_READWRITE | NM_SETTING_PARAM_INFERRABLE | G_PARAM_STATIC_STRINGS); + _nm_setting_property_define_direct_uint32(properties_override, + obj_properties, + NM_SETTING_BRIDGE_MULTICAST_LAST_MEMBER_COUNT, + PROP_MULTICAST_LAST_MEMBER_COUNT, + NM_BRIDGE_MULTICAST_LAST_MEMBER_COUNT_MIN, + NM_BRIDGE_MULTICAST_LAST_MEMBER_COUNT_MAX, + NM_BRIDGE_MULTICAST_LAST_MEMBER_COUNT_DEF, + NM_SETTING_PARAM_INFERRABLE, + NMSettingBridgePrivate, + multicast_last_member_count); /** * NMSettingBridge:multicast-last-member-interval: @@ -2123,14 +1962,16 @@ nm_setting_bridge_class_init(NMSettingBridgeClass *klass) * * Since: 1.26 */ - obj_properties[PROP_MULTICAST_LAST_MEMBER_INTERVAL] = g_param_spec_uint64( - NM_SETTING_BRIDGE_MULTICAST_LAST_MEMBER_INTERVAL, - "", - "", - NM_BRIDGE_MULTICAST_LAST_MEMBER_INTERVAL_MIN, - NM_BRIDGE_MULTICAST_LAST_MEMBER_INTERVAL_MAX, - NM_BRIDGE_MULTICAST_LAST_MEMBER_INTERVAL_DEF, - G_PARAM_READWRITE | NM_SETTING_PARAM_INFERRABLE | G_PARAM_STATIC_STRINGS); + _nm_setting_property_define_direct_uint64(properties_override, + obj_properties, + NM_SETTING_BRIDGE_MULTICAST_LAST_MEMBER_INTERVAL, + PROP_MULTICAST_LAST_MEMBER_INTERVAL, + NM_BRIDGE_MULTICAST_LAST_MEMBER_INTERVAL_MIN, + NM_BRIDGE_MULTICAST_LAST_MEMBER_INTERVAL_MAX, + NM_BRIDGE_MULTICAST_LAST_MEMBER_INTERVAL_DEF, + NM_SETTING_PARAM_INFERRABLE, + NMSettingBridgePrivate, + multicast_last_member_interval); /** * NMSettingBridge:multicast-membership-interval: @@ -2148,14 +1989,16 @@ nm_setting_bridge_class_init(NMSettingBridgeClass *klass) * * Since: 1.26 */ - obj_properties[PROP_MULTICAST_MEMBERSHIP_INTERVAL] = g_param_spec_uint64( - NM_SETTING_BRIDGE_MULTICAST_MEMBERSHIP_INTERVAL, - "", - "", - NM_BRIDGE_MULTICAST_MEMBERSHIP_INTERVAL_MIN, - NM_BRIDGE_MULTICAST_MEMBERSHIP_INTERVAL_MAX, - NM_BRIDGE_MULTICAST_MEMBERSHIP_INTERVAL_DEF, - G_PARAM_READWRITE | NM_SETTING_PARAM_INFERRABLE | G_PARAM_STATIC_STRINGS); + _nm_setting_property_define_direct_uint64(properties_override, + obj_properties, + NM_SETTING_BRIDGE_MULTICAST_MEMBERSHIP_INTERVAL, + PROP_MULTICAST_MEMBERSHIP_INTERVAL, + NM_BRIDGE_MULTICAST_MEMBERSHIP_INTERVAL_MIN, + NM_BRIDGE_MULTICAST_MEMBERSHIP_INTERVAL_MAX, + NM_BRIDGE_MULTICAST_MEMBERSHIP_INTERVAL_DEF, + NM_SETTING_PARAM_INFERRABLE, + NMSettingBridgePrivate, + multicast_membership_interval); /** * NMSettingBridge:multicast-querier-interval: @@ -2172,14 +2015,16 @@ nm_setting_bridge_class_init(NMSettingBridgeClass *klass) * * Since: 1.26 */ - obj_properties[PROP_MULTICAST_QUERIER_INTERVAL] = g_param_spec_uint64( - NM_SETTING_BRIDGE_MULTICAST_QUERIER_INTERVAL, - "", - "", - NM_BRIDGE_MULTICAST_QUERIER_INTERVAL_MIN, - NM_BRIDGE_MULTICAST_QUERIER_INTERVAL_MAX, - NM_BRIDGE_MULTICAST_QUERIER_INTERVAL_DEF, - G_PARAM_READWRITE | NM_SETTING_PARAM_INFERRABLE | G_PARAM_STATIC_STRINGS); + _nm_setting_property_define_direct_uint64(properties_override, + obj_properties, + NM_SETTING_BRIDGE_MULTICAST_QUERIER_INTERVAL, + PROP_MULTICAST_QUERIER_INTERVAL, + NM_BRIDGE_MULTICAST_QUERIER_INTERVAL_MIN, + NM_BRIDGE_MULTICAST_QUERIER_INTERVAL_MAX, + NM_BRIDGE_MULTICAST_QUERIER_INTERVAL_DEF, + NM_SETTING_PARAM_INFERRABLE, + NMSettingBridgePrivate, + multicast_querier_interval); /** * NMSettingBridge:multicast-query-interval: @@ -2196,14 +2041,16 @@ nm_setting_bridge_class_init(NMSettingBridgeClass *klass) * * Since: 1.26 */ - obj_properties[PROP_MULTICAST_QUERY_INTERVAL] = g_param_spec_uint64( - NM_SETTING_BRIDGE_MULTICAST_QUERY_INTERVAL, - "", - "", - NM_BRIDGE_MULTICAST_QUERY_INTERVAL_MIN, - NM_BRIDGE_MULTICAST_QUERY_INTERVAL_MAX, - NM_BRIDGE_MULTICAST_QUERY_INTERVAL_DEF, - G_PARAM_READWRITE | NM_SETTING_PARAM_INFERRABLE | G_PARAM_STATIC_STRINGS); + _nm_setting_property_define_direct_uint64(properties_override, + obj_properties, + NM_SETTING_BRIDGE_MULTICAST_QUERY_INTERVAL, + PROP_MULTICAST_QUERY_INTERVAL, + NM_BRIDGE_MULTICAST_QUERY_INTERVAL_MIN, + NM_BRIDGE_MULTICAST_QUERY_INTERVAL_MAX, + NM_BRIDGE_MULTICAST_QUERY_INTERVAL_DEF, + NM_SETTING_PARAM_INFERRABLE, + NMSettingBridgePrivate, + multicast_query_interval); /** * NMSettingBridge:multicast-query-response-interval: @@ -2220,14 +2067,16 @@ nm_setting_bridge_class_init(NMSettingBridgeClass *klass) * * Since: 1.26 */ - obj_properties[PROP_MULTICAST_QUERY_RESPONSE_INTERVAL] = g_param_spec_uint64( - NM_SETTING_BRIDGE_MULTICAST_QUERY_RESPONSE_INTERVAL, - "", - "", - NM_BRIDGE_MULTICAST_QUERY_RESPONSE_INTERVAL_MIN, - NM_BRIDGE_MULTICAST_QUERY_RESPONSE_INTERVAL_MAX, - NM_BRIDGE_MULTICAST_QUERY_RESPONSE_INTERVAL_DEF, - G_PARAM_READWRITE | NM_SETTING_PARAM_INFERRABLE | G_PARAM_STATIC_STRINGS); + _nm_setting_property_define_direct_uint64(properties_override, + obj_properties, + NM_SETTING_BRIDGE_MULTICAST_QUERY_RESPONSE_INTERVAL, + PROP_MULTICAST_QUERY_RESPONSE_INTERVAL, + NM_BRIDGE_MULTICAST_QUERY_RESPONSE_INTERVAL_MIN, + NM_BRIDGE_MULTICAST_QUERY_RESPONSE_INTERVAL_MAX, + NM_BRIDGE_MULTICAST_QUERY_RESPONSE_INTERVAL_DEF, + NM_SETTING_PARAM_INFERRABLE, + NMSettingBridgePrivate, + multicast_query_response_interval); /** * NMSettingBridge:multicast-startup-query-count: @@ -2243,14 +2092,16 @@ nm_setting_bridge_class_init(NMSettingBridgeClass *klass) * * Since: 1.26 */ - obj_properties[PROP_MULTICAST_STARTUP_QUERY_COUNT] = - g_param_spec_uint(NM_SETTING_BRIDGE_MULTICAST_STARTUP_QUERY_COUNT, - "", - "", - NM_BRIDGE_MULTICAST_STARTUP_QUERY_COUNT_MIN, - NM_BRIDGE_MULTICAST_STARTUP_QUERY_COUNT_MAX, - NM_BRIDGE_MULTICAST_STARTUP_QUERY_COUNT_DEF, - G_PARAM_READWRITE | NM_SETTING_PARAM_INFERRABLE | G_PARAM_STATIC_STRINGS); + _nm_setting_property_define_direct_uint32(properties_override, + obj_properties, + NM_SETTING_BRIDGE_MULTICAST_STARTUP_QUERY_COUNT, + PROP_MULTICAST_STARTUP_QUERY_COUNT, + NM_BRIDGE_MULTICAST_STARTUP_QUERY_COUNT_MIN, + NM_BRIDGE_MULTICAST_STARTUP_QUERY_COUNT_MAX, + NM_BRIDGE_MULTICAST_STARTUP_QUERY_COUNT_DEF, + NM_SETTING_PARAM_INFERRABLE, + NMSettingBridgePrivate, + multicast_startup_query_count); /** * NMSettingBridge:multicast-startup-query-interval: @@ -2267,14 +2118,16 @@ nm_setting_bridge_class_init(NMSettingBridgeClass *klass) * * Since: 1.26 */ - obj_properties[PROP_MULTICAST_STARTUP_QUERY_INTERVAL] = g_param_spec_uint64( - NM_SETTING_BRIDGE_MULTICAST_STARTUP_QUERY_INTERVAL, - "", - "", - NM_BRIDGE_MULTICAST_STARTUP_QUERY_INTERVAL_MIN, - NM_BRIDGE_MULTICAST_STARTUP_QUERY_INTERVAL_MAX, - NM_BRIDGE_MULTICAST_STARTUP_QUERY_INTERVAL_DEF, - G_PARAM_READWRITE | NM_SETTING_PARAM_INFERRABLE | G_PARAM_STATIC_STRINGS); + _nm_setting_property_define_direct_uint64(properties_override, + obj_properties, + NM_SETTING_BRIDGE_MULTICAST_STARTUP_QUERY_INTERVAL, + PROP_MULTICAST_STARTUP_QUERY_INTERVAL, + NM_BRIDGE_MULTICAST_STARTUP_QUERY_INTERVAL_MIN, + NM_BRIDGE_MULTICAST_STARTUP_QUERY_INTERVAL_MAX, + NM_BRIDGE_MULTICAST_STARTUP_QUERY_INTERVAL_DEF, + NM_SETTING_PARAM_INFERRABLE, + NMSettingBridgePrivate, + multicast_startup_query_interval); g_object_class_install_properties(object_class, _PROPERTY_ENUMS_LAST, obj_properties); diff --git a/src/libnm-core-impl/nm-setting-cdma.c b/src/libnm-core-impl/nm-setting-cdma.c index ca81bf385c..214f3b918b 100644 --- a/src/libnm-core-impl/nm-setting-cdma.c +++ b/src/libnm-core-impl/nm-setting-cdma.c @@ -29,7 +29,7 @@ NM_GOBJECT_PROPERTIES_DEFINE_BASE(PROP_NUMBER, PROP_MTU, ); typedef struct { - char * number; /* For dialing, duh */ + char * number; char * username; char * password; guint32 mtu; @@ -136,23 +136,23 @@ verify(NMSetting *setting, NMConnection *connection, GError **error) { NMSettingCdmaPrivate *priv = NM_SETTING_CDMA_GET_PRIVATE(setting); - if (!priv->number) { - g_set_error_literal(error, - NM_CONNECTION_ERROR, - NM_CONNECTION_ERROR_MISSING_PROPERTY, - _("property is missing")); - g_prefix_error(error, "%s.%s: ", NM_SETTING_CDMA_SETTING_NAME, NM_SETTING_CDMA_NUMBER); - return FALSE; - } else if (!strlen(priv->number)) { - g_set_error_literal(error, - NM_CONNECTION_ERROR, - NM_CONNECTION_ERROR_INVALID_PROPERTY, - _("property is empty")); + if (nm_str_is_empty(priv->number)) { + if (!priv->number) { + g_set_error_literal(error, + NM_CONNECTION_ERROR, + NM_CONNECTION_ERROR_MISSING_PROPERTY, + _("property is missing")); + } else { + g_set_error_literal(error, + NM_CONNECTION_ERROR, + NM_CONNECTION_ERROR_INVALID_PROPERTY, + _("property is empty")); + } g_prefix_error(error, "%s.%s: ", NM_SETTING_CDMA_SETTING_NAME, NM_SETTING_CDMA_NUMBER); return FALSE; } - if (priv->username && !strlen(priv->username)) { + if (priv->username && nm_str_is_empty(priv->username)) { g_set_error_literal(error, NM_CONNECTION_ERROR, NM_CONNECTION_ERROR_INVALID_PROPERTY, @@ -179,7 +179,7 @@ need_secrets(NMSetting *setting) NMSettingCdmaPrivate *priv = NM_SETTING_CDMA_GET_PRIVATE(setting); GPtrArray * secrets = NULL; - if (priv->password && *priv->password) + if (!nm_str_is_empty(priv->password)) return NULL; if (priv->username) { @@ -194,65 +194,6 @@ need_secrets(NMSetting *setting) /*****************************************************************************/ -static void -get_property(GObject *object, guint prop_id, GValue *value, GParamSpec *pspec) -{ - NMSettingCdma *setting = NM_SETTING_CDMA(object); - - switch (prop_id) { - case PROP_NUMBER: - g_value_set_string(value, nm_setting_cdma_get_number(setting)); - break; - case PROP_USERNAME: - g_value_set_string(value, nm_setting_cdma_get_username(setting)); - break; - case PROP_PASSWORD: - g_value_set_string(value, nm_setting_cdma_get_password(setting)); - break; - case PROP_PASSWORD_FLAGS: - g_value_set_flags(value, nm_setting_cdma_get_password_flags(setting)); - break; - case PROP_MTU: - g_value_set_uint(value, nm_setting_cdma_get_mtu(setting)); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec); - break; - } -} - -static void -set_property(GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec) -{ - NMSettingCdmaPrivate *priv = NM_SETTING_CDMA_GET_PRIVATE(object); - - switch (prop_id) { - case PROP_NUMBER: - g_free(priv->number); - priv->number = g_value_dup_string(value); - break; - case PROP_USERNAME: - g_free(priv->username); - priv->username = g_value_dup_string(value); - break; - case PROP_PASSWORD: - g_free(priv->password); - priv->password = g_value_dup_string(value); - break; - case PROP_PASSWORD_FLAGS: - priv->password_flags = g_value_get_flags(value); - break; - case PROP_MTU: - priv->mtu = g_value_get_uint(value); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec); - break; - } -} - -/*****************************************************************************/ - static void nm_setting_cdma_init(NMSettingCdma *setting) {} @@ -270,29 +211,17 @@ nm_setting_cdma_new(void) return g_object_new(NM_TYPE_SETTING_CDMA, NULL); } -static void -finalize(GObject *object) -{ - NMSettingCdmaPrivate *priv = NM_SETTING_CDMA_GET_PRIVATE(object); - - g_free(priv->number); - g_free(priv->username); - g_free(priv->password); - - G_OBJECT_CLASS(nm_setting_cdma_parent_class)->finalize(object); -} - static void nm_setting_cdma_class_init(NMSettingCdmaClass *klass) { - GObjectClass * object_class = G_OBJECT_CLASS(klass); - NMSettingClass *setting_class = NM_SETTING_CLASS(klass); + GObjectClass * object_class = G_OBJECT_CLASS(klass); + NMSettingClass *setting_class = NM_SETTING_CLASS(klass); + GArray * properties_override = _nm_sett_info_property_override_create_array(); g_type_class_add_private(klass, sizeof(NMSettingCdmaPrivate)); - object_class->get_property = get_property; - object_class->set_property = set_property; - object_class->finalize = finalize; + object_class->get_property = _nm_setting_property_get_property_direct; + object_class->set_property = _nm_setting_property_set_property_direct; setting_class->verify = verify; setting_class->verify_secrets = verify_secrets; @@ -305,11 +234,13 @@ nm_setting_cdma_class_init(NMSettingCdmaClass *klass) * broadband network, if any. If not specified, the default number (#777) * is used when required. **/ - obj_properties[PROP_NUMBER] = g_param_spec_string(NM_SETTING_CDMA_NUMBER, - "", - "", - NULL, - G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); + _nm_setting_property_define_direct_string(properties_override, + obj_properties, + NM_SETTING_CDMA_NUMBER, + PROP_NUMBER, + NM_SETTING_PARAM_NONE, + NMSettingCdmaPrivate, + number); /** * NMSettingCdma:username: @@ -318,11 +249,13 @@ nm_setting_cdma_class_init(NMSettingCdmaClass *klass) * providers do not require a username, or accept any username. But if a * username is required, it is specified here. **/ - obj_properties[PROP_USERNAME] = g_param_spec_string(NM_SETTING_CDMA_USERNAME, - "", - "", - NULL, - G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); + _nm_setting_property_define_direct_string(properties_override, + obj_properties, + NM_SETTING_CDMA_USERNAME, + PROP_USERNAME, + NM_SETTING_PARAM_NONE, + NMSettingCdmaPrivate, + username); /** * NMSettingCdma:password: @@ -331,25 +264,25 @@ nm_setting_cdma_class_init(NMSettingCdmaClass *klass) * providers do not require a password, or accept any password. But if a * password is required, it is specified here. **/ - obj_properties[PROP_PASSWORD] = - g_param_spec_string(NM_SETTING_CDMA_PASSWORD, - "", - "", - NULL, - G_PARAM_READWRITE | NM_SETTING_PARAM_SECRET | G_PARAM_STATIC_STRINGS); + _nm_setting_property_define_direct_string(properties_override, + obj_properties, + NM_SETTING_CDMA_PASSWORD, + PROP_PASSWORD, + NM_SETTING_PARAM_SECRET, + NMSettingCdmaPrivate, + password); /** * NMSettingCdma:password-flags: * * Flags indicating how to handle the #NMSettingCdma:password property. **/ - obj_properties[PROP_PASSWORD_FLAGS] = - g_param_spec_flags(NM_SETTING_CDMA_PASSWORD_FLAGS, - "", - "", - NM_TYPE_SETTING_SECRET_FLAGS, - NM_SETTING_SECRET_FLAG_NONE, - G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); + _nm_setting_property_define_direct_secret_flags(properties_override, + obj_properties, + NM_SETTING_CDMA_PASSWORD_FLAGS, + PROP_PASSWORD_FLAGS, + NMSettingCdmaPrivate, + password_flags); /** * NMSettingCdma:mtu: @@ -359,16 +292,22 @@ nm_setting_cdma_class_init(NMSettingCdmaClass *klass) * * Since: 1.8 **/ - obj_properties[PROP_MTU] = g_param_spec_uint(NM_SETTING_CDMA_MTU, - "", - "", - 0, - G_MAXUINT32, - 0, - G_PARAM_READWRITE | NM_SETTING_PARAM_FUZZY_IGNORE - | G_PARAM_STATIC_STRINGS); + _nm_setting_property_define_direct_uint32(properties_override, + obj_properties, + NM_SETTING_CDMA_MTU, + PROP_MTU, + 0, + G_MAXUINT32, + 0, + NM_SETTING_PARAM_FUZZY_IGNORE, + NMSettingCdmaPrivate, + mtu); g_object_class_install_properties(object_class, _PROPERTY_ENUMS_LAST, obj_properties); - _nm_setting_class_commit(setting_class, NM_META_SETTING_TYPE_CDMA, NULL, NULL, 0); + _nm_setting_class_commit(setting_class, + NM_META_SETTING_TYPE_CDMA, + NULL, + properties_override, + NM_SETT_INFO_PRIVATE_OFFSET_FROM_CLASS); } diff --git a/src/libnm-core-impl/nm-setting-connection.c b/src/libnm-core-impl/nm-setting-connection.c index 7e4764f03f..322250f884 100644 --- a/src/libnm-core-impl/nm-setting-connection.c +++ b/src/libnm-core-impl/nm-setting-connection.c @@ -71,32 +71,32 @@ NM_GOBJECT_PROPERTIES_DEFINE(NMSettingConnection, PROP_MUD_URL, ); typedef struct { - GArray * permissions; - GArray * secondaries; - char * id; - char * uuid; - char * stable_id; - char * interface_name; - char * type; - char * master; - char * slave_type; - char * zone; - char * mud_url; - guint64 timestamp; - gint32 autoconnect_priority; - gint32 autoconnect_retries; - gint32 multi_connect; - gint32 auth_retries; - gint32 mdns; - gint32 llmnr; - gint32 dns_over_tls; - gint32 wait_device_timeout; - gint32 lldp; - guint32 gateway_ping_timeout; - NMSettingConnectionAutoconnectSlaves autoconnect_slaves; - NMMetered metered; - bool autoconnect; - bool read_only; + GArray *permissions; + GArray *secondaries; + char * id; + char * uuid; + char * stable_id; + char * interface_name; + char * type; + char * master; + char * slave_type; + char * zone; + char * mud_url; + guint64 timestamp; + int autoconnect_slaves; + int metered; + gint32 autoconnect_priority; + gint32 autoconnect_retries; + gint32 multi_connect; + gint32 auth_retries; + gint32 mdns; + gint32 llmnr; + gint32 dns_over_tls; + gint32 wait_device_timeout; + gint32 lldp; + guint32 gateway_ping_timeout; + bool autoconnect; + bool read_only; } NMSettingConnectionPrivate; /** @@ -1293,8 +1293,7 @@ after_interface_name: return FALSE; } - if (priv->metered != NM_METERED_UNKNOWN && priv->metered != NM_METERED_YES - && priv->metered != NM_METERED_NO) { + if (!NM_IN_SET(priv->metered, NM_METERED_UNKNOWN, NM_METERED_NO, NM_METERED_YES)) { g_set_error(error, NM_CONNECTION_ERROR, NM_CONNECTION_ERROR_INVALID_PROPERTY, @@ -1620,21 +1619,6 @@ get_property(GObject *object, guint prop_id, GValue *value, GParamSpec *pspec) NMSettingConnectionPrivate *priv = NM_SETTING_CONNECTION_GET_PRIVATE(setting); switch (prop_id) { - case PROP_ID: - g_value_set_string(value, nm_setting_connection_get_id(setting)); - break; - case PROP_UUID: - g_value_set_string(value, nm_setting_connection_get_uuid(setting)); - break; - case PROP_STABLE_ID: - g_value_set_string(value, nm_setting_connection_get_stable_id(setting)); - break; - case PROP_INTERFACE_NAME: - g_value_set_string(value, nm_setting_connection_get_interface_name(setting)); - break; - case PROP_TYPE: - g_value_set_string(value, nm_setting_connection_get_connection_type(setting)); - break; case PROP_PERMISSIONS: { char **strv; @@ -1650,68 +1634,14 @@ get_property(GObject *object, guint prop_id, GValue *value, GParamSpec *pspec) g_value_take_boxed(value, strv); break; } - case PROP_AUTOCONNECT: - g_value_set_boolean(value, nm_setting_connection_get_autoconnect(setting)); - break; - case PROP_AUTOCONNECT_PRIORITY: - g_value_set_int(value, nm_setting_connection_get_autoconnect_priority(setting)); - break; - case PROP_AUTOCONNECT_RETRIES: - g_value_set_int(value, nm_setting_connection_get_autoconnect_retries(setting)); - break; - case PROP_MULTI_CONNECT: - g_value_set_int(value, priv->multi_connect); - break; case PROP_TIMESTAMP: g_value_set_uint64(value, nm_setting_connection_get_timestamp(setting)); break; - case PROP_READ_ONLY: - g_value_set_boolean(value, nm_setting_connection_get_read_only(setting)); - break; - case PROP_ZONE: - g_value_set_string(value, nm_setting_connection_get_zone(setting)); - break; - case PROP_MASTER: - g_value_set_string(value, nm_setting_connection_get_master(setting)); - break; - case PROP_SLAVE_TYPE: - g_value_set_string(value, nm_setting_connection_get_slave_type(setting)); - break; - case PROP_AUTOCONNECT_SLAVES: - g_value_set_enum(value, nm_setting_connection_get_autoconnect_slaves(setting)); - break; case PROP_SECONDARIES: g_value_take_boxed(value, nm_strvarray_get_strv_non_empty_dup(priv->secondaries, NULL)); break; - case PROP_GATEWAY_PING_TIMEOUT: - g_value_set_uint(value, priv->gateway_ping_timeout); - break; - case PROP_METERED: - g_value_set_enum(value, priv->metered); - break; - case PROP_LLDP: - g_value_set_int(value, priv->lldp); - break; - case PROP_AUTH_RETRIES: - g_value_set_int(value, priv->auth_retries); - break; - case PROP_MDNS: - g_value_set_int(value, priv->mdns); - break; - case PROP_LLMNR: - g_value_set_int(value, priv->llmnr); - break; - case PROP_DNS_OVER_TLS: - g_value_set_int(value, priv->dns_over_tls); - break; - case PROP_WAIT_DEVICE_TIMEOUT: - g_value_set_int(value, priv->wait_device_timeout); - break; - case PROP_MUD_URL: - g_value_set_string(value, priv->mud_url); - break; default: - G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec); + _nm_setting_property_get_property_direct(object, prop_id, value, pspec); break; } } @@ -1722,26 +1652,6 @@ set_property(GObject *object, guint prop_id, const GValue *value, GParamSpec *ps NMSettingConnectionPrivate *priv = NM_SETTING_CONNECTION_GET_PRIVATE(object); switch (prop_id) { - case PROP_ID: - g_free(priv->id); - priv->id = g_value_dup_string(value); - break; - case PROP_UUID: - g_free(priv->uuid); - priv->uuid = g_value_dup_string(value); - break; - case PROP_STABLE_ID: - g_free(priv->stable_id); - priv->stable_id = g_value_dup_string(value); - break; - case PROP_INTERFACE_NAME: - g_free(priv->interface_name); - priv->interface_name = g_value_dup_string(value); - break; - case PROP_TYPE: - g_free(priv->type); - priv->type = g_value_dup_string(value); - break; case PROP_PERMISSIONS: { const char *const *strv; @@ -1762,72 +1672,14 @@ set_property(GObject *object, guint prop_id, const GValue *value, GParamSpec *ps } break; } - case PROP_AUTOCONNECT: - priv->autoconnect = g_value_get_boolean(value); - break; - case PROP_AUTOCONNECT_PRIORITY: - priv->autoconnect_priority = g_value_get_int(value); - break; - case PROP_AUTOCONNECT_RETRIES: - priv->autoconnect_retries = g_value_get_int(value); - break; - case PROP_MULTI_CONNECT: - priv->multi_connect = g_value_get_int(value); - break; case PROP_TIMESTAMP: priv->timestamp = g_value_get_uint64(value); break; - case PROP_READ_ONLY: - priv->read_only = g_value_get_boolean(value); - break; - case PROP_ZONE: - g_free(priv->zone); - priv->zone = g_value_dup_string(value); - break; - case PROP_MASTER: - g_free(priv->master); - priv->master = g_value_dup_string(value); - break; - case PROP_SLAVE_TYPE: - g_free(priv->slave_type); - priv->slave_type = g_value_dup_string(value); - break; - case PROP_AUTOCONNECT_SLAVES: - priv->autoconnect_slaves = g_value_get_enum(value); - break; case PROP_SECONDARIES: nm_strvarray_set_strv(&priv->secondaries, g_value_get_boxed(value)); break; - case PROP_GATEWAY_PING_TIMEOUT: - priv->gateway_ping_timeout = g_value_get_uint(value); - break; - case PROP_METERED: - priv->metered = g_value_get_enum(value); - break; - case PROP_LLDP: - priv->lldp = g_value_get_int(value); - break; - case PROP_AUTH_RETRIES: - priv->auth_retries = g_value_get_int(value); - break; - case PROP_MDNS: - priv->mdns = g_value_get_int(value); - break; - case PROP_LLMNR: - priv->llmnr = g_value_get_int(value); - break; - case PROP_DNS_OVER_TLS: - priv->dns_over_tls = g_value_get_int(value); - break; - case PROP_WAIT_DEVICE_TIMEOUT: - priv->wait_device_timeout = g_value_get_int(value); - break; - case PROP_MUD_URL: - g_free(priv->mud_url); - priv->mud_url = g_value_dup_string(value); - break; default: - G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec); + _nm_setting_property_set_property_direct(object, prop_id, value, pspec); break; } } @@ -1836,11 +1688,7 @@ set_property(GObject *object, guint prop_id, const GValue *value, GParamSpec *ps static void nm_setting_connection_init(NMSettingConnection *setting) -{ - NMSettingConnectionPrivate *priv = NM_SETTING_CONNECTION_GET_PRIVATE(setting); - - priv->autoconnect_slaves = NM_SETTING_CONNECTION_AUTOCONNECT_SLAVES_DEFAULT; -} +{} /** * nm_setting_connection_new: @@ -2357,13 +2205,15 @@ nm_setting_connection_class_init(NMSettingConnectionClass *klass) * when this connection is activated. * ---end--- */ - obj_properties[PROP_AUTOCONNECT_SLAVES] = g_param_spec_enum( - NM_SETTING_CONNECTION_AUTOCONNECT_SLAVES, - "", - "", - NM_TYPE_SETTING_CONNECTION_AUTOCONNECT_SLAVES, - NM_SETTING_CONNECTION_AUTOCONNECT_SLAVES_DEFAULT, - G_PARAM_READWRITE | NM_SETTING_PARAM_FUZZY_IGNORE | G_PARAM_STATIC_STRINGS); + _nm_setting_property_define_direct_enum(properties_override, + obj_properties, + NM_SETTING_CONNECTION_AUTOCONNECT_SLAVES, + PROP_AUTOCONNECT_SLAVES, + NM_TYPE_SETTING_CONNECTION_AUTOCONNECT_SLAVES, + NM_SETTING_CONNECTION_AUTOCONNECT_SLAVES_DEFAULT, + NM_SETTING_PARAM_FUZZY_IGNORE, + NMSettingConnectionPrivate, + autoconnect_slaves); /** * NMSettingConnection:secondaries: @@ -2430,13 +2280,15 @@ nm_setting_connection_class_init(NMSettingConnectionClass *klass) * example: CONNECTION_METERED=yes * ---end--- */ - obj_properties[PROP_METERED] = g_param_spec_enum( - NM_SETTING_CONNECTION_METERED, - "", - "", - NM_TYPE_METERED, - NM_METERED_UNKNOWN, - G_PARAM_READWRITE | NM_SETTING_PARAM_REAPPLY_IMMEDIATELY | G_PARAM_STATIC_STRINGS); + _nm_setting_property_define_direct_enum(properties_override, + obj_properties, + NM_SETTING_CONNECTION_METERED, + PROP_METERED, + NM_TYPE_METERED, + NM_METERED_UNKNOWN, + NM_SETTING_PARAM_REAPPLY_IMMEDIATELY, + NMSettingConnectionPrivate, + metered); /** * NMSettingConnection:lldp: diff --git a/src/libnm-core-impl/nm-setting-dcb.c b/src/libnm-core-impl/nm-setting-dcb.c index e71bdd8ae8..a6f4a973e5 100644 --- a/src/libnm-core-impl/nm-setting-dcb.c +++ b/src/libnm-core-impl/nm-setting-dcb.c @@ -48,21 +48,21 @@ NM_GOBJECT_PROPERTIES_DEFINE(NMSettingDcb, PROP_PRIORITY_TRAFFIC_CLASS, ); typedef struct { - char * app_fcoe_mode; - guint pfc[8]; - guint priority_group_id[8]; - guint priority_group_bandwidth[8]; - guint priority_bandwidth[8]; - guint priority_strict[8]; - guint priority_traffic_class[8]; - int app_fcoe_priority; - int app_iscsi_priority; - int app_fip_priority; - NMSettingDcbFlags app_fcoe_flags; - NMSettingDcbFlags app_iscsi_flags; - NMSettingDcbFlags app_fip_flags; - NMSettingDcbFlags pfc_flags; - NMSettingDcbFlags priority_group_flags; + char * app_fcoe_mode; + guint pfc[8]; + guint priority_group_id[8]; + guint priority_group_bandwidth[8]; + guint priority_bandwidth[8]; + guint priority_strict[8]; + guint priority_traffic_class[8]; + guint app_fcoe_flags; + guint app_iscsi_flags; + guint app_fip_flags; + guint pfc_flags; + guint priority_group_flags; + gint32 app_fcoe_priority; + gint32 app_iscsi_priority; + gint32 app_fip_priority; } NMSettingDcbPrivate; /** @@ -765,36 +765,9 @@ get_property(GObject *object, guint prop_id, GValue *value, GParamSpec *pspec) NMSettingDcbPrivate *priv = NM_SETTING_DCB_GET_PRIVATE(setting); switch (prop_id) { - case PROP_APP_FCOE_FLAGS: - g_value_set_flags(value, priv->app_fcoe_flags); - break; - case PROP_APP_FCOE_PRIORITY: - g_value_set_int(value, priv->app_fcoe_priority); - break; - case PROP_APP_FCOE_MODE: - g_value_set_string(value, priv->app_fcoe_mode); - break; - case PROP_APP_ISCSI_FLAGS: - g_value_set_flags(value, priv->app_iscsi_flags); - break; - case PROP_APP_ISCSI_PRIORITY: - g_value_set_int(value, priv->app_iscsi_priority); - break; - case PROP_APP_FIP_FLAGS: - g_value_set_flags(value, priv->app_fip_flags); - break; - case PROP_APP_FIP_PRIORITY: - g_value_set_int(value, priv->app_fip_priority); - break; - case PROP_PFC_FLAGS: - g_value_set_flags(value, priv->pfc_flags); - break; case PROP_PRIORITY_FLOW_CONTROL: SET_GVALUE_FROM_ARRAY(value, priv->pfc); break; - case PROP_PRIORITY_GROUP_FLAGS: - g_value_set_flags(value, priv->priority_group_flags); - break; case PROP_PRIORITY_GROUP_ID: SET_GVALUE_FROM_ARRAY(value, priv->priority_group_id); break; @@ -811,7 +784,7 @@ get_property(GObject *object, guint prop_id, GValue *value, GParamSpec *pspec) SET_GVALUE_FROM_ARRAY(value, priv->priority_traffic_class); break; default: - G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec); + _nm_setting_property_get_property_direct(object, prop_id, value, pspec); break; } } @@ -822,37 +795,9 @@ set_property(GObject *object, guint prop_id, const GValue *value, GParamSpec *ps NMSettingDcbPrivate *priv = NM_SETTING_DCB_GET_PRIVATE(object); switch (prop_id) { - case PROP_APP_FCOE_FLAGS: - priv->app_fcoe_flags = g_value_get_flags(value); - break; - case PROP_APP_FCOE_PRIORITY: - priv->app_fcoe_priority = g_value_get_int(value); - break; - case PROP_APP_FCOE_MODE: - g_free(priv->app_fcoe_mode); - priv->app_fcoe_mode = g_value_dup_string(value); - break; - case PROP_APP_ISCSI_FLAGS: - priv->app_iscsi_flags = g_value_get_flags(value); - break; - case PROP_APP_ISCSI_PRIORITY: - priv->app_iscsi_priority = g_value_get_int(value); - break; - case PROP_APP_FIP_FLAGS: - priv->app_fip_flags = g_value_get_flags(value); - break; - case PROP_APP_FIP_PRIORITY: - priv->app_fip_priority = g_value_get_int(value); - break; - case PROP_PFC_FLAGS: - priv->pfc_flags = g_value_get_flags(value); - break; case PROP_PRIORITY_FLOW_CONTROL: SET_ARRAY_FROM_GVALUE(value, priv->pfc); break; - case PROP_PRIORITY_GROUP_FLAGS: - priv->priority_group_flags = g_value_get_flags(value); - break; case PROP_PRIORITY_GROUP_ID: SET_ARRAY_FROM_GVALUE(value, priv->priority_group_id); break; @@ -869,7 +814,7 @@ set_property(GObject *object, guint prop_id, const GValue *value, GParamSpec *ps SET_ARRAY_FROM_GVALUE(value, priv->priority_traffic_class); break; default: - G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec); + _nm_setting_property_set_property_direct(object, prop_id, value, pspec); break; } } @@ -878,13 +823,7 @@ set_property(GObject *object, guint prop_id, const GValue *value, GParamSpec *ps static void nm_setting_dcb_init(NMSettingDcb *self) -{ - NMSettingDcbPrivate *priv = NM_SETTING_DCB_GET_PRIVATE(self); - - priv->app_fcoe_priority = -1; - priv->app_fip_priority = -1; - priv->app_iscsi_priority = -1; -} +{} /** * nm_setting_dcb_new: @@ -899,16 +838,6 @@ nm_setting_dcb_new(void) return g_object_new(NM_TYPE_SETTING_DCB, NULL); } -static void -finalize(GObject *object) -{ - NMSettingDcbPrivate *priv = NM_SETTING_DCB_GET_PRIVATE(object); - - g_free(priv->app_fcoe_mode); - - G_OBJECT_CLASS(nm_setting_dcb_parent_class)->finalize(object); -} - static void nm_setting_dcb_class_init(NMSettingDcbClass *klass) { @@ -920,7 +849,6 @@ nm_setting_dcb_class_init(NMSettingDcbClass *klass) object_class->get_property = get_property; object_class->set_property = set_property; - object_class->finalize = finalize; setting_class->verify = verify; @@ -939,13 +867,15 @@ nm_setting_dcb_class_init(NMSettingDcbClass *klass) * example: DCB_APP_FCOE_ENABLE=yes DCB_APP_FCOE_ADVERTISE=yes * ---end--- */ - obj_properties[PROP_APP_FCOE_FLAGS] = - g_param_spec_flags(NM_SETTING_DCB_APP_FCOE_FLAGS, - "", - "", - NM_TYPE_SETTING_DCB_FLAGS, - NM_SETTING_DCB_FLAG_NONE, - G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); + _nm_setting_property_define_direct_flags(properties_override, + obj_properties, + NM_SETTING_DCB_APP_FCOE_FLAGS, + PROP_APP_FCOE_FLAGS, + NM_TYPE_SETTING_DCB_FLAGS, + NM_SETTING_DCB_FLAG_NONE, + NM_SETTING_PARAM_NONE, + NMSettingDcbPrivate, + app_fcoe_flags); /** * NMSettingDcb:app-fcoe-priority: @@ -961,14 +891,16 @@ nm_setting_dcb_class_init(NMSettingDcbClass *klass) * description: Priority of FCoE frames. * ---end--- */ - obj_properties[PROP_APP_FCOE_PRIORITY] = - g_param_spec_int(NM_SETTING_DCB_APP_FCOE_PRIORITY, - "", - "", - -1, - 7, - -1, - G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); + _nm_setting_property_define_direct_int32(properties_override, + obj_properties, + NM_SETTING_DCB_APP_FCOE_PRIORITY, + PROP_APP_FCOE_PRIORITY, + -1, + 7, + -1, + NM_SETTING_PARAM_NONE, + NMSettingDcbPrivate, + app_fcoe_priority); /** * NMSettingDcb:app-fcoe-mode: @@ -987,12 +919,13 @@ nm_setting_dcb_class_init(NMSettingDcbClass *klass) * description: FCoE controller mode. * ---end--- */ - obj_properties[PROP_APP_FCOE_MODE] = - g_param_spec_string(NM_SETTING_DCB_APP_FCOE_MODE, - "", - "", - NULL, - G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); + _nm_setting_property_define_direct_string(properties_override, + obj_properties, + NM_SETTING_DCB_APP_FCOE_MODE, + PROP_APP_FCOE_MODE, + NM_SETTING_PARAM_NONE, + NMSettingDcbPrivate, + app_fcoe_mode); /** * NMSettingDcb:app-iscsi-flags: @@ -1008,13 +941,15 @@ nm_setting_dcb_class_init(NMSettingDcbClass *klass) * description: iSCSI flags. * ---end--- */ - obj_properties[PROP_APP_ISCSI_FLAGS] = - g_param_spec_flags(NM_SETTING_DCB_APP_ISCSI_FLAGS, - "", - "", - NM_TYPE_SETTING_DCB_FLAGS, - NM_SETTING_DCB_FLAG_NONE, - G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); + _nm_setting_property_define_direct_flags(properties_override, + obj_properties, + NM_SETTING_DCB_APP_ISCSI_FLAGS, + PROP_APP_ISCSI_FLAGS, + NM_TYPE_SETTING_DCB_FLAGS, + NM_SETTING_DCB_FLAG_NONE, + NM_SETTING_PARAM_NONE, + NMSettingDcbPrivate, + app_iscsi_flags); /** * NMSettingDcb:app-iscsi-priority: @@ -1030,14 +965,16 @@ nm_setting_dcb_class_init(NMSettingDcbClass *klass) * description: Priority of iSCSI frames. * ---end--- */ - obj_properties[PROP_APP_ISCSI_PRIORITY] = - g_param_spec_int(NM_SETTING_DCB_APP_ISCSI_PRIORITY, - "", - "", - -1, - 7, - -1, - G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); + _nm_setting_property_define_direct_int32(properties_override, + obj_properties, + NM_SETTING_DCB_APP_ISCSI_PRIORITY, + PROP_APP_ISCSI_PRIORITY, + -1, + 7, + -1, + NM_SETTING_PARAM_NONE, + NMSettingDcbPrivate, + app_iscsi_priority); /** * NMSettingDcb:app-fip-flags: @@ -1053,13 +990,15 @@ nm_setting_dcb_class_init(NMSettingDcbClass *klass) * description: FIP flags. * ---end--- */ - obj_properties[PROP_APP_FIP_FLAGS] = - g_param_spec_flags(NM_SETTING_DCB_APP_FIP_FLAGS, - "", - "", - NM_TYPE_SETTING_DCB_FLAGS, - NM_SETTING_DCB_FLAG_NONE, - G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); + _nm_setting_property_define_direct_flags(properties_override, + obj_properties, + NM_SETTING_DCB_APP_FIP_FLAGS, + PROP_APP_FIP_FLAGS, + NM_TYPE_SETTING_DCB_FLAGS, + NM_SETTING_DCB_FLAG_NONE, + NM_SETTING_PARAM_NONE, + NMSettingDcbPrivate, + app_fip_flags); /** * NMSettingDcb:app-fip-priority: @@ -1075,14 +1014,16 @@ nm_setting_dcb_class_init(NMSettingDcbClass *klass) * description: Priority of FIP frames. * ---end--- */ - obj_properties[PROP_APP_FIP_PRIORITY] = - g_param_spec_int(NM_SETTING_DCB_APP_FIP_PRIORITY, - "", - "", - -1, - 7, - -1, - G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); + _nm_setting_property_define_direct_int32(properties_override, + obj_properties, + NM_SETTING_DCB_APP_FIP_PRIORITY, + PROP_APP_FIP_PRIORITY, + -1, + 7, + -1, + NM_SETTING_PARAM_NONE, + NMSettingDcbPrivate, + app_fip_priority); /** * NMSettingDcb:priority-flow-control-flags: @@ -1098,12 +1039,15 @@ nm_setting_dcb_class_init(NMSettingDcbClass *klass) * description: Priority flow control flags. * ---end--- */ - obj_properties[PROP_PFC_FLAGS] = g_param_spec_flags(NM_SETTING_DCB_PRIORITY_FLOW_CONTROL_FLAGS, - "", - "", - NM_TYPE_SETTING_DCB_FLAGS, - NM_SETTING_DCB_FLAG_NONE, - G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); + _nm_setting_property_define_direct_flags(properties_override, + obj_properties, + NM_SETTING_DCB_PRIORITY_FLOW_CONTROL_FLAGS, + PROP_PFC_FLAGS, + NM_TYPE_SETTING_DCB_FLAGS, + NM_SETTING_DCB_FLAG_NONE, + NM_SETTING_PARAM_NONE, + NMSettingDcbPrivate, + pfc_flags); /** * NMSettingDcb:priority-flow-control: (type GArray(gboolean)) @@ -1144,13 +1088,15 @@ nm_setting_dcb_class_init(NMSettingDcbClass *klass) * description: Priority groups flags. * ---end--- */ - obj_properties[PROP_PRIORITY_GROUP_FLAGS] = - g_param_spec_flags(NM_SETTING_DCB_PRIORITY_GROUP_FLAGS, - "", - "", - NM_TYPE_SETTING_DCB_FLAGS, - NM_SETTING_DCB_FLAG_NONE, - G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); + _nm_setting_property_define_direct_flags(properties_override, + obj_properties, + NM_SETTING_DCB_PRIORITY_GROUP_FLAGS, + PROP_PRIORITY_GROUP_FLAGS, + NM_TYPE_SETTING_DCB_FLAGS, + NM_SETTING_DCB_FLAG_NONE, + NM_SETTING_PARAM_NONE, + NMSettingDcbPrivate, + priority_group_flags); /** * NMSettingDcb:priority-group-id: (type GArray(guint)) diff --git a/src/libnm-core-impl/nm-setting-hostname.c b/src/libnm-core-impl/nm-setting-hostname.c index d002d70eab..d0a1568435 100644 --- a/src/libnm-core-impl/nm-setting-hostname.c +++ b/src/libnm-core-impl/nm-setting-hostname.c @@ -34,9 +34,9 @@ NM_GOBJECT_PROPERTIES_DEFINE(NMSettingHostname, struct _NMSettingHostname { NMSetting parent; int priority; - NMTernary from_dhcp; - NMTernary from_dns_lookup; - NMTernary only_from_default; + int from_dhcp; + int from_dns_lookup; + int only_from_default; }; struct _NMSettingHostnameClass { @@ -123,63 +123,9 @@ nm_setting_hostname_get_only_from_default(NMSettingHostname *setting) /*****************************************************************************/ -static void -get_property(GObject *object, guint prop_id, GValue *value, GParamSpec *pspec) -{ - NMSettingHostname *self = NM_SETTING_HOSTNAME(object); - - switch (prop_id) { - case PROP_PRIORITY: - g_value_set_int(value, self->priority); - break; - case PROP_FROM_DHCP: - g_value_set_enum(value, self->from_dhcp); - break; - case PROP_FROM_DNS_LOOKUP: - g_value_set_enum(value, self->from_dns_lookup); - break; - case PROP_ONLY_FROM_DEFAULT: - g_value_set_enum(value, self->only_from_default); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec); - break; - } -} - -static void -set_property(GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec) -{ - NMSettingHostname *self = NM_SETTING_HOSTNAME(object); - - switch (prop_id) { - case PROP_PRIORITY: - self->priority = g_value_get_int(value); - break; - case PROP_FROM_DHCP: - self->from_dhcp = g_value_get_enum(value); - break; - case PROP_FROM_DNS_LOOKUP: - self->from_dns_lookup = g_value_get_enum(value); - break; - case PROP_ONLY_FROM_DEFAULT: - self->only_from_default = g_value_get_enum(value); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec); - break; - } -} - -/*****************************************************************************/ - static void nm_setting_hostname_init(NMSettingHostname *setting) -{ - setting->from_dhcp = NM_TERNARY_DEFAULT; - setting->from_dns_lookup = NM_TERNARY_DEFAULT; - setting->only_from_default = NM_TERNARY_DEFAULT; -} +{} /** * nm_setting_hostname_new: @@ -199,11 +145,12 @@ nm_setting_hostname_new(void) static void nm_setting_hostname_class_init(NMSettingHostnameClass *klass) { - GObjectClass * object_class = G_OBJECT_CLASS(klass); - NMSettingClass *setting_class = NM_SETTING_CLASS(klass); + GObjectClass * object_class = G_OBJECT_CLASS(klass); + NMSettingClass *setting_class = NM_SETTING_CLASS(klass); + GArray * properties_override = _nm_sett_info_property_override_create_array(); - object_class->get_property = get_property; - object_class->set_property = set_property; + object_class->get_property = _nm_setting_property_get_property_direct; + object_class->set_property = _nm_setting_property_set_property_direct; /** * NMSettingHostname:priority @@ -234,13 +181,16 @@ nm_setting_hostname_class_init(NMSettingHostnameClass *klass) * example: HOSTNAME_PRIORITY=50 * ---end--- */ - obj_properties[PROP_PRIORITY] = g_param_spec_int(NM_SETTING_HOSTNAME_PRIORITY, - "", - "", - G_MININT32, - G_MAXINT32, - 0, - G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); + _nm_setting_property_define_direct_int32(properties_override, + obj_properties, + NM_SETTING_HOSTNAME_PRIORITY, + PROP_PRIORITY, + G_MININT32, + G_MAXINT32, + 0, + NM_SETTING_PARAM_NONE, + NMSettingHostname, + priority); /** * NMSettingHostname:from-dhcp @@ -262,13 +212,13 @@ nm_setting_hostname_class_init(NMSettingHostnameClass *klass) * example: HOSTNAME_FROM_DHCP=0,1 * ---end--- */ - obj_properties[PROP_FROM_DHCP] = g_param_spec_enum( - NM_SETTING_HOSTNAME_FROM_DHCP, - "", - "", - NM_TYPE_TERNARY, - NM_TERNARY_DEFAULT, - NM_SETTING_PARAM_FUZZY_IGNORE | G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); + _nm_setting_property_define_direct_ternary_enum(properties_override, + obj_properties, + NM_SETTING_HOSTNAME_FROM_DHCP, + PROP_FROM_DHCP, + NM_SETTING_PARAM_FUZZY_IGNORE, + NMSettingHostname, + from_dhcp); /** * NMSettingHostname:from-dns-lookup @@ -291,13 +241,13 @@ nm_setting_hostname_class_init(NMSettingHostnameClass *klass) * example: HOSTNAME_FROM_DNS_LOOKUP=0,1 * ---end--- */ - obj_properties[PROP_FROM_DNS_LOOKUP] = g_param_spec_enum( - NM_SETTING_HOSTNAME_FROM_DNS_LOOKUP, - "", - "", - NM_TYPE_TERNARY, - NM_TERNARY_DEFAULT, - NM_SETTING_PARAM_FUZZY_IGNORE | G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); + _nm_setting_property_define_direct_ternary_enum(properties_override, + obj_properties, + NM_SETTING_HOSTNAME_FROM_DNS_LOOKUP, + PROP_FROM_DNS_LOOKUP, + NM_SETTING_PARAM_FUZZY_IGNORE, + NMSettingHostname, + from_dns_lookup); /** * NMSettingHostname:only-from-default @@ -325,15 +275,19 @@ nm_setting_hostname_class_init(NMSettingHostnameClass *klass) * example: HOSTNAME_ONLY_FROM_DEFAULT=0,1 * ---end--- */ - obj_properties[PROP_ONLY_FROM_DEFAULT] = g_param_spec_enum( - NM_SETTING_HOSTNAME_ONLY_FROM_DEFAULT, - "", - "", - NM_TYPE_TERNARY, - NM_TERNARY_DEFAULT, - NM_SETTING_PARAM_FUZZY_IGNORE | G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); + _nm_setting_property_define_direct_ternary_enum(properties_override, + obj_properties, + NM_SETTING_HOSTNAME_ONLY_FROM_DEFAULT, + PROP_ONLY_FROM_DEFAULT, + NM_SETTING_PARAM_FUZZY_IGNORE, + NMSettingHostname, + only_from_default); g_object_class_install_properties(object_class, _PROPERTY_ENUMS_LAST, obj_properties); - _nm_setting_class_commit(setting_class, NM_META_SETTING_TYPE_HOSTNAME, NULL, NULL, 0); + _nm_setting_class_commit(setting_class, + NM_META_SETTING_TYPE_HOSTNAME, + NULL, + properties_override, + 0); } diff --git a/src/libnm-core-impl/nm-setting-olpc-mesh.c b/src/libnm-core-impl/nm-setting-olpc-mesh.c index ba612c4f35..0da1d5b427 100644 --- a/src/libnm-core-impl/nm-setting-olpc-mesh.c +++ b/src/libnm-core-impl/nm-setting-olpc-mesh.c @@ -147,55 +147,6 @@ verify(NMSetting *setting, NMConnection *connection, GError **error) /*****************************************************************************/ -static void -get_property(GObject *object, guint prop_id, GValue *value, GParamSpec *pspec) -{ - NMSettingOlpcMesh *setting = NM_SETTING_OLPC_MESH(object); - - switch (prop_id) { - case PROP_SSID: - g_value_set_boxed(value, nm_setting_olpc_mesh_get_ssid(setting)); - break; - case PROP_CHANNEL: - g_value_set_uint(value, nm_setting_olpc_mesh_get_channel(setting)); - break; - case PROP_DHCP_ANYCAST_ADDRESS: - g_value_set_string(value, nm_setting_olpc_mesh_get_dhcp_anycast_address(setting)); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec); - break; - } -} - -static void -set_property(GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec) -{ - NMSettingOlpcMeshPrivate *priv = NM_SETTING_OLPC_MESH_GET_PRIVATE(object); - - switch (prop_id) { - case PROP_SSID: - if (priv->ssid) - g_bytes_unref(priv->ssid); - priv->ssid = g_value_dup_boxed(value); - break; - case PROP_CHANNEL: - priv->channel = g_value_get_uint(value); - break; - case PROP_DHCP_ANYCAST_ADDRESS: - g_free(priv->dhcp_anycast_addr); - priv->dhcp_anycast_addr = - _nm_utils_hwaddr_canonical_or_invalid(g_value_get_string(value), ETH_ALEN); - - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec); - break; - } -} - -/*****************************************************************************/ - static void nm_setting_olpc_mesh_init(NMSettingOlpcMesh *setting) {} @@ -213,17 +164,6 @@ nm_setting_olpc_mesh_new(void) return g_object_new(NM_TYPE_SETTING_OLPC_MESH, NULL); } -static void -finalize(GObject *object) -{ - NMSettingOlpcMeshPrivate *priv = NM_SETTING_OLPC_MESH_GET_PRIVATE(object); - - if (priv->ssid) - g_bytes_unref(priv->ssid); - - G_OBJECT_CLASS(nm_setting_olpc_mesh_parent_class)->finalize(object); -} - static void nm_setting_olpc_mesh_class_init(NMSettingOlpcMeshClass *klass) { @@ -233,9 +173,8 @@ nm_setting_olpc_mesh_class_init(NMSettingOlpcMeshClass *klass) g_type_class_add_private(klass, sizeof(NMSettingOlpcMeshPrivate)); - object_class->get_property = get_property; - object_class->set_property = set_property; - object_class->finalize = finalize; + object_class->get_property = _nm_setting_property_get_property_direct; + object_class->set_property = _nm_setting_property_set_property_direct; setting_class->verify = verify; @@ -244,26 +183,29 @@ nm_setting_olpc_mesh_class_init(NMSettingOlpcMeshClass *klass) * * SSID of the mesh network to join. **/ - obj_properties[PROP_SSID] = g_param_spec_boxed(NM_SETTING_OLPC_MESH_SSID, - "", - "", - G_TYPE_BYTES, - G_PARAM_READWRITE | NM_SETTING_PARAM_INFERRABLE - | G_PARAM_STATIC_STRINGS); + _nm_setting_property_define_direct_bytes(properties_override, + obj_properties, + NM_SETTING_OLPC_MESH_SSID, + PROP_SSID, + NM_SETTING_PARAM_INFERRABLE, + NMSettingOlpcMeshPrivate, + ssid); /** * NMSettingOlpcMesh:channel: * * Channel on which the mesh network to join is located. **/ - obj_properties[PROP_CHANNEL] = - g_param_spec_uint(NM_SETTING_OLPC_MESH_CHANNEL, - "", - "", - 0, - G_MAXUINT32, - 0, - G_PARAM_READWRITE | NM_SETTING_PARAM_INFERRABLE | G_PARAM_STATIC_STRINGS); + _nm_setting_property_define_direct_uint32(properties_override, + obj_properties, + NM_SETTING_OLPC_MESH_CHANNEL, + PROP_CHANNEL, + 0, + G_MAXUINT32, + 0, + NM_SETTING_PARAM_INFERRABLE, + NMSettingOlpcMeshPrivate, + channel); /** * NMSettingOlpcMesh:dhcp-anycast-address: diff --git a/src/libnm-core-impl/nm-setting-pppoe.c b/src/libnm-core-impl/nm-setting-pppoe.c index 1c97c05b15..3ae547a24c 100644 --- a/src/libnm-core-impl/nm-setting-pppoe.c +++ b/src/libnm-core-impl/nm-setting-pppoe.c @@ -30,11 +30,11 @@ NM_GOBJECT_PROPERTIES_DEFINE_BASE(PROP_PARENT, PROP_PASSWORD_FLAGS, ); typedef struct { - char * parent; - char * service; - char * username; - char * password; - NMSettingSecretFlags password_flags; + char *parent; + char *service; + char *username; + char *password; + guint password_flags; } NMSettingPppoePrivate; /** @@ -138,23 +138,23 @@ verify(NMSetting *setting, NMConnection *connection, GError **error) NMSettingPppoePrivate *priv = NM_SETTING_PPPOE_GET_PRIVATE(setting); gs_free_error GError *local_error = NULL; - if (!priv->username) { - g_set_error_literal(error, - NM_CONNECTION_ERROR, - NM_CONNECTION_ERROR_MISSING_PROPERTY, - _("property is missing")); - g_prefix_error(error, "%s.%s: ", NM_SETTING_PPPOE_SETTING_NAME, NM_SETTING_PPPOE_USERNAME); - return FALSE; - } else if (!strlen(priv->username)) { - g_set_error_literal(error, - NM_CONNECTION_ERROR, - NM_CONNECTION_ERROR_INVALID_PROPERTY, - _("property is empty")); + if (nm_str_is_empty(priv->username)) { + if (!priv->username) { + g_set_error_literal(error, + NM_CONNECTION_ERROR, + NM_CONNECTION_ERROR_MISSING_PROPERTY, + _("property is missing")); + } else { + g_set_error_literal(error, + NM_CONNECTION_ERROR, + NM_CONNECTION_ERROR_INVALID_PROPERTY, + _("property is empty")); + } g_prefix_error(error, "%s.%s: ", NM_SETTING_PPPOE_SETTING_NAME, NM_SETTING_PPPOE_USERNAME); return FALSE; } - if (priv->service && !strlen(priv->service)) { + if (priv->service && nm_str_is_empty(priv->service)) { g_set_error_literal(error, NM_CONNECTION_ERROR, NM_CONNECTION_ERROR_INVALID_PROPERTY, @@ -196,66 +196,6 @@ need_secrets(NMSetting *setting) /*****************************************************************************/ -static void -get_property(GObject *object, guint prop_id, GValue *value, GParamSpec *pspec) -{ - NMSettingPppoe *setting = NM_SETTING_PPPOE(object); - - switch (prop_id) { - case PROP_PARENT: - g_value_set_string(value, nm_setting_pppoe_get_parent(setting)); - break; - case PROP_SERVICE: - g_value_set_string(value, nm_setting_pppoe_get_service(setting)); - break; - case PROP_USERNAME: - g_value_set_string(value, nm_setting_pppoe_get_username(setting)); - break; - case PROP_PASSWORD: - g_value_set_string(value, nm_setting_pppoe_get_password(setting)); - break; - case PROP_PASSWORD_FLAGS: - g_value_set_flags(value, nm_setting_pppoe_get_password_flags(setting)); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec); - break; - } -} - -static void -set_property(GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec) -{ - NMSettingPppoePrivate *priv = NM_SETTING_PPPOE_GET_PRIVATE(object); - - switch (prop_id) { - case PROP_PARENT: - g_free(priv->parent); - priv->parent = g_value_dup_string(value); - break; - case PROP_SERVICE: - g_free(priv->service); - priv->service = g_value_dup_string(value); - break; - case PROP_USERNAME: - g_free(priv->username); - priv->username = g_value_dup_string(value); - break; - case PROP_PASSWORD: - g_free(priv->password); - priv->password = g_value_dup_string(value); - break; - case PROP_PASSWORD_FLAGS: - priv->password_flags = g_value_get_flags(value); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec); - break; - } -} - -/*****************************************************************************/ - static void nm_setting_pppoe_init(NMSettingPppoe *setting) {} @@ -273,30 +213,17 @@ nm_setting_pppoe_new(void) return g_object_new(NM_TYPE_SETTING_PPPOE, NULL); } -static void -finalize(GObject *object) -{ - NMSettingPppoePrivate *priv = NM_SETTING_PPPOE_GET_PRIVATE(object); - - g_free(priv->parent); - g_free(priv->username); - g_free(priv->password); - g_free(priv->service); - - G_OBJECT_CLASS(nm_setting_pppoe_parent_class)->finalize(object); -} - static void nm_setting_pppoe_class_init(NMSettingPppoeClass *klass) { - GObjectClass * object_class = G_OBJECT_CLASS(klass); - NMSettingClass *setting_class = NM_SETTING_CLASS(klass); + GObjectClass * object_class = G_OBJECT_CLASS(klass); + NMSettingClass *setting_class = NM_SETTING_CLASS(klass); + GArray * properties_override = _nm_sett_info_property_override_create_array(); g_type_class_add_private(klass, sizeof(NMSettingPppoePrivate)); - object_class->get_property = get_property; - object_class->set_property = set_property; - object_class->finalize = finalize; + object_class->get_property = _nm_setting_property_get_property_direct; + object_class->set_property = _nm_setting_property_set_property_direct; setting_class->verify = verify; setting_class->need_secrets = need_secrets; @@ -311,12 +238,13 @@ nm_setting_pppoe_class_init(NMSettingPppoeClass *klass) * * Since: 1.10 **/ - obj_properties[PROP_PARENT] = g_param_spec_string( - NM_SETTING_PPPOE_PARENT, - "", - "", - NULL, - G_PARAM_READWRITE | NM_SETTING_PARAM_INFERRABLE | G_PARAM_STATIC_STRINGS); + _nm_setting_property_define_direct_string(properties_override, + obj_properties, + NM_SETTING_PPPOE_PARENT, + PROP_PARENT, + NM_SETTING_PARAM_INFERRABLE, + NMSettingPppoePrivate, + parent); /** * NMSettingPppoe:service: @@ -326,49 +254,57 @@ nm_setting_pppoe_class_init(NMSettingPppoeClass *klass) * this should be left blank. It is only required if there are multiple * access concentrators or a specific service is known to be required. **/ - obj_properties[PROP_SERVICE] = g_param_spec_string(NM_SETTING_PPPOE_SERVICE, - "", - "", - NULL, - G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); + _nm_setting_property_define_direct_string(properties_override, + obj_properties, + NM_SETTING_PPPOE_SERVICE, + PROP_SERVICE, + NM_SETTING_PARAM_NONE, + NMSettingPppoePrivate, + service); /** * NMSettingPppoe:username: * * Username used to authenticate with the PPPoE service. **/ - obj_properties[PROP_USERNAME] = g_param_spec_string(NM_SETTING_PPPOE_USERNAME, - "", - "", - NULL, - G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); + _nm_setting_property_define_direct_string(properties_override, + obj_properties, + NM_SETTING_PPPOE_USERNAME, + PROP_USERNAME, + NM_SETTING_PARAM_NONE, + NMSettingPppoePrivate, + username); /** * NMSettingPppoe:password: * * Password used to authenticate with the PPPoE service. **/ - obj_properties[PROP_PASSWORD] = - g_param_spec_string(NM_SETTING_PPPOE_PASSWORD, - "", - "", - NULL, - G_PARAM_READWRITE | NM_SETTING_PARAM_SECRET | G_PARAM_STATIC_STRINGS); + _nm_setting_property_define_direct_string(properties_override, + obj_properties, + NM_SETTING_PPPOE_PASSWORD, + PROP_PASSWORD, + NM_SETTING_PARAM_SECRET, + NMSettingPppoePrivate, + password); /** * NMSettingPppoe:password-flags: * * Flags indicating how to handle the #NMSettingPppoe:password property. **/ - obj_properties[PROP_PASSWORD_FLAGS] = - g_param_spec_flags(NM_SETTING_PPPOE_PASSWORD_FLAGS, - "", - "", - NM_TYPE_SETTING_SECRET_FLAGS, - NM_SETTING_SECRET_FLAG_NONE, - G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); + _nm_setting_property_define_direct_secret_flags(properties_override, + obj_properties, + NM_SETTING_PPPOE_PASSWORD_FLAGS, + PROP_PASSWORD_FLAGS, + NMSettingPppoePrivate, + password_flags); g_object_class_install_properties(object_class, _PROPERTY_ENUMS_LAST, obj_properties); - _nm_setting_class_commit(setting_class, NM_META_SETTING_TYPE_PPPOE, NULL, NULL, 0); + _nm_setting_class_commit(setting_class, + NM_META_SETTING_TYPE_PPPOE, + NULL, + properties_override, + NM_SETT_INFO_PRIVATE_OFFSET_FROM_CLASS); } diff --git a/src/libnm-core-impl/nm-setting-private.h b/src/libnm-core-impl/nm-setting-private.h index 3210c19dac..7faf5d1c64 100644 --- a/src/libnm-core-impl/nm-setting-private.h +++ b/src/libnm-core-impl/nm-setting-private.h @@ -771,6 +771,27 @@ _nm_properties_override(GArray *properties_override, const NMSettInfoProperty *p /*****************************************************************************/ +#define _nm_setting_property_define_direct_ternary_enum(properties_override, \ + obj_properties, \ + prop_name, \ + prop_id, \ + param_flags, \ + private_struct_type, \ + private_struct_field, \ + ...) \ + _nm_setting_property_define_direct_enum((properties_override), \ + (obj_properties), \ + prop_name, \ + (prop_id), \ + NM_TYPE_TERNARY, \ + NM_TERNARY_DEFAULT, \ + (param_flags), \ + private_struct_type, \ + private_struct_field, \ + __VA_ARGS__) + +/*****************************************************************************/ + #define _nm_setting_property_define_direct_flags(properties_override, \ obj_properties, \ prop_name, \ diff --git a/src/libnm-core-impl/nm-setting-proxy.c b/src/libnm-core-impl/nm-setting-proxy.c index 3f888ec7d3..0425ec456e 100644 --- a/src/libnm-core-impl/nm-setting-proxy.c +++ b/src/libnm-core-impl/nm-setting-proxy.c @@ -29,10 +29,10 @@ NM_GOBJECT_PROPERTIES_DEFINE_BASE(PROP_METHOD, PROP_BROWSER_ONLY, PROP_PAC_URL, PROP_PAC_SCRIPT, ); typedef struct { - char *pac_url; - char *pac_script; - int method; - bool browser_only; + char * pac_url; + char * pac_script; + gint32 method; + bool browser_only; } NMSettingProxyPrivate; /** @@ -207,63 +207,9 @@ verify(NMSetting *setting, NMConnection *connection, GError **error) /*****************************************************************************/ -static void -get_property(GObject *object, guint prop_id, GValue *value, GParamSpec *pspec) -{ - NMSettingProxy *setting = NM_SETTING_PROXY(object); - - switch (prop_id) { - case PROP_METHOD: - g_value_set_int(value, nm_setting_proxy_get_method(setting)); - break; - case PROP_BROWSER_ONLY: - g_value_set_boolean(value, nm_setting_proxy_get_browser_only(setting)); - break; - case PROP_PAC_URL: - g_value_set_string(value, nm_setting_proxy_get_pac_url(setting)); - break; - case PROP_PAC_SCRIPT: - g_value_set_string(value, nm_setting_proxy_get_pac_script(setting)); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec); - break; - } -} - -static void -set_property(GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec) -{ - NMSettingProxyPrivate *priv = NM_SETTING_PROXY_GET_PRIVATE(object); - - switch (prop_id) { - case PROP_METHOD: - priv->method = g_value_get_int(value); - break; - case PROP_BROWSER_ONLY: - priv->browser_only = g_value_get_boolean(value); - break; - case PROP_PAC_URL: - g_free(priv->pac_url); - priv->pac_url = g_value_dup_string(value); - break; - case PROP_PAC_SCRIPT: - g_free(priv->pac_script); - priv->pac_script = g_value_dup_string(value); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec); - break; - } -} - -/*****************************************************************************/ - static void nm_setting_proxy_init(NMSettingProxy *self) -{ - nm_assert(NM_SETTING_PROXY_GET_PRIVATE(self)->method == NM_SETTING_PROXY_METHOD_NONE); -} +{} /** * nm_setting_proxy_new: @@ -280,18 +226,6 @@ nm_setting_proxy_new(void) return g_object_new(NM_TYPE_SETTING_PROXY, NULL); } -static void -finalize(GObject *object) -{ - NMSettingProxy * self = NM_SETTING_PROXY(object); - NMSettingProxyPrivate *priv = NM_SETTING_PROXY_GET_PRIVATE(self); - - g_free(priv->pac_url); - g_free(priv->pac_script); - - G_OBJECT_CLASS(nm_setting_proxy_parent_class)->finalize(object); -} - static void nm_setting_proxy_class_init(NMSettingProxyClass *klass) { @@ -301,9 +235,8 @@ nm_setting_proxy_class_init(NMSettingProxyClass *klass) g_type_class_add_private(klass, sizeof(NMSettingProxyPrivate)); - object_class->get_property = get_property; - object_class->set_property = set_property; - object_class->finalize = finalize; + object_class->get_property = _nm_setting_property_get_property_direct; + object_class->set_property = _nm_setting_property_set_property_direct; setting_class->verify = verify; @@ -323,13 +256,16 @@ nm_setting_proxy_class_init(NMSettingProxyClass *klass) * values: none, auto * ---end--- */ - obj_properties[PROP_METHOD] = g_param_spec_int(NM_SETTING_PROXY_METHOD, - "", - "", - G_MININT32, - G_MAXINT32, - NM_SETTING_PROXY_METHOD_NONE, - G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); + _nm_setting_property_define_direct_int32(properties_override, + obj_properties, + NM_SETTING_PROXY_METHOD, + PROP_METHOD, + G_MININT32, + G_MAXINT32, + NM_SETTING_PROXY_METHOD_NONE, + NM_SETTING_PARAM_NONE, + NMSettingProxyPrivate, + method); /** * NMSettingProxy:browser-only: @@ -368,11 +304,13 @@ nm_setting_proxy_class_init(NMSettingProxyClass *klass) * example: PAC_URL=http://wpad.mycompany.com/wpad.dat * ---end--- */ - obj_properties[PROP_PAC_URL] = g_param_spec_string(NM_SETTING_PROXY_PAC_URL, - "", - "", - NULL, - G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); + _nm_setting_property_define_direct_string(properties_override, + obj_properties, + NM_SETTING_PROXY_PAC_URL, + PROP_PAC_URL, + NM_SETTING_PARAM_NONE, + NMSettingProxyPrivate, + pac_url); /** * NMSettingProxy:pac-script: @@ -388,12 +326,13 @@ nm_setting_proxy_class_init(NMSettingProxyClass *klass) * example: PAC_SCRIPT=/home/joe/proxy.pac * ---end--- */ - obj_properties[PROP_PAC_SCRIPT] = - g_param_spec_string(NM_SETTING_PROXY_PAC_SCRIPT, - "", - "", - NULL, - G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); + _nm_setting_property_define_direct_string(properties_override, + obj_properties, + NM_SETTING_PROXY_PAC_SCRIPT, + PROP_PAC_SCRIPT, + NM_SETTING_PARAM_NONE, + NMSettingProxyPrivate, + pac_script); g_object_class_install_properties(object_class, _PROPERTY_ENUMS_LAST, obj_properties); diff --git a/src/libnm-core-impl/nm-setting-serial.c b/src/libnm-core-impl/nm-setting-serial.c index 7f407326ad..3ebcf0623f 100644 --- a/src/libnm-core-impl/nm-setting-serial.c +++ b/src/libnm-core-impl/nm-setting-serial.c @@ -30,9 +30,9 @@ NM_GOBJECT_PROPERTIES_DEFINE_BASE(PROP_BAUD, typedef struct { guint64 send_delay; - guint baud; - guint bits; - guint stopbits; + guint32 baud; + guint32 bits; + guint32 stopbits; char parity; } NMSettingSerialPrivate; @@ -129,6 +129,8 @@ nm_setting_serial_get_send_delay(NMSettingSerial *setting) return NM_SETTING_SERIAL_GET_PRIVATE(setting)->send_delay; } +/*****************************************************************************/ + static GVariant * parity_to_dbus_fcn(_NM_SETT_INFO_PROP_TO_DBUS_FCN_ARGS _nm_nil) { @@ -170,23 +172,11 @@ get_property(GObject *object, guint prop_id, GValue *value, GParamSpec *pspec) NMSettingSerial *setting = NM_SETTING_SERIAL(object); switch (prop_id) { - case PROP_BAUD: - g_value_set_uint(value, nm_setting_serial_get_baud(setting)); - break; - case PROP_BITS: - g_value_set_uint(value, nm_setting_serial_get_bits(setting)); - break; case PROP_PARITY: g_value_set_enum(value, nm_setting_serial_get_parity(setting)); break; - case PROP_STOPBITS: - g_value_set_uint(value, nm_setting_serial_get_stopbits(setting)); - break; - case PROP_SEND_DELAY: - g_value_set_uint64(value, nm_setting_serial_get_send_delay(setting)); - break; default: - G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec); + _nm_setting_property_get_property_direct(object, prop_id, value, pspec); break; } } @@ -197,23 +187,11 @@ set_property(GObject *object, guint prop_id, const GValue *value, GParamSpec *ps NMSettingSerialPrivate *priv = NM_SETTING_SERIAL_GET_PRIVATE(object); switch (prop_id) { - case PROP_BAUD: - priv->baud = g_value_get_uint(value); - break; - case PROP_BITS: - priv->bits = g_value_get_uint(value); - break; case PROP_PARITY: priv->parity = g_value_get_enum(value); break; - case PROP_STOPBITS: - priv->stopbits = g_value_get_uint(value); - break; - case PROP_SEND_DELAY: - priv->send_delay = g_value_get_uint64(value); - break; default: - G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec); + _nm_setting_property_set_property_direct(object, prop_id, value, pspec); break; } } @@ -226,9 +204,6 @@ nm_setting_serial_init(NMSettingSerial *self) NMSettingSerialPrivate *priv = NM_SETTING_SERIAL_GET_PRIVATE(self); nm_assert(priv->parity == NM_SETTING_SERIAL_PARITY_NONE); - priv->stopbits = 1; - priv->baud = 57600; - priv->bits = 8; } /** @@ -263,26 +238,32 @@ nm_setting_serial_class_init(NMSettingSerialClass *klass) * value usually has no effect for mobile broadband modems as they generally * ignore speed settings and use the highest available speed. **/ - obj_properties[PROP_BAUD] = g_param_spec_uint(NM_SETTING_SERIAL_BAUD, - "", - "", - 0, - G_MAXUINT, - 57600, - G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); + _nm_setting_property_define_direct_uint32(properties_override, + obj_properties, + NM_SETTING_SERIAL_BAUD, + PROP_BAUD, + 0, + G_MAXUINT32, + 57600, + NM_SETTING_PARAM_NONE, + NMSettingSerialPrivate, + baud); /** * NMSettingSerial:bits: * * Byte-width of the serial communication. The 8 in "8n1" for example. **/ - obj_properties[PROP_BITS] = g_param_spec_uint(NM_SETTING_SERIAL_BITS, - "", - "", - 5, - 8, - 8, - G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); + _nm_setting_property_define_direct_uint32(properties_override, + obj_properties, + NM_SETTING_SERIAL_BITS, + PROP_BITS, + 5, + 8, + 8, + NM_SETTING_PARAM_NONE, + NMSettingSerialPrivate, + bits); /** * NMSettingSerial:parity: @@ -326,27 +307,32 @@ nm_setting_serial_class_init(NMSettingSerialClass *klass) * Number of stop bits for communication on the serial port. Either 1 or 2. * The 1 in "8n1" for example. **/ - obj_properties[PROP_STOPBITS] = g_param_spec_uint(NM_SETTING_SERIAL_STOPBITS, - "", - "", - 1, - 2, - 1, - G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); + _nm_setting_property_define_direct_uint32(properties_override, + obj_properties, + NM_SETTING_SERIAL_STOPBITS, + PROP_STOPBITS, + 1, + 2, + 1, + NM_SETTING_PARAM_NONE, + NMSettingSerialPrivate, + stopbits); /** * NMSettingSerial:send-delay: * * Time to delay between each byte sent to the modem, in microseconds. **/ - obj_properties[PROP_SEND_DELAY] = - g_param_spec_uint64(NM_SETTING_SERIAL_SEND_DELAY, - "", - "", - 0, - G_MAXUINT64, - 0, - G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); + _nm_setting_property_define_direct_uint64(properties_override, + obj_properties, + NM_SETTING_SERIAL_SEND_DELAY, + PROP_SEND_DELAY, + 0, + G_MAXUINT64, + 0, + NM_SETTING_PARAM_NONE, + NMSettingSerialPrivate, + send_delay); g_object_class_install_properties(object_class, _PROPERTY_ENUMS_LAST, obj_properties); diff --git a/src/libnm-core-impl/nm-setting-vlan.c b/src/libnm-core-impl/nm-setting-vlan.c index e31f672e5e..1124953edc 100644 --- a/src/libnm-core-impl/nm-setting-vlan.c +++ b/src/libnm-core-impl/nm-setting-vlan.c @@ -90,6 +90,7 @@ guint32 nm_setting_vlan_get_id(NMSettingVlan *setting) { g_return_val_if_fail(NM_IS_SETTING_VLAN(setting), 0); + return NM_SETTING_VLAN_GET_PRIVATE(setting)->id; } @@ -738,9 +739,6 @@ get_property(GObject *object, guint prop_id, GValue *value, GParamSpec *pspec) case PROP_PARENT: g_value_set_string(value, priv->parent); break; - case PROP_ID: - g_value_set_uint(value, priv->id); - break; case PROP_FLAGS: g_value_set_flags(value, priv->flags); break; @@ -751,7 +749,7 @@ get_property(GObject *object, guint prop_id, GValue *value, GParamSpec *pspec) g_value_take_boxed(value, priority_maplist_to_strv(priv->egress_priority_map)); break; default: - G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec); + _nm_setting_property_get_property_direct(object, prop_id, value, pspec); break; } } @@ -767,9 +765,6 @@ set_property(GObject *object, guint prop_id, const GValue *value, GParamSpec *ps g_free(priv->parent); priv->parent = g_value_dup_string(value); break; - case PROP_ID: - priv->id = g_value_get_uint(value); - break; case PROP_FLAGS: priv->flags = g_value_get_flags(value); break; @@ -784,7 +779,7 @@ set_property(GObject *object, guint prop_id, const GValue *value, GParamSpec *ps priority_strv_to_maplist(NM_VLAN_EGRESS_MAP, g_value_get_boxed(value)); break; default: - G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec); + _nm_setting_property_set_property_direct(object, prop_id, value, pspec); break; } } @@ -876,14 +871,16 @@ nm_setting_vlan_class_init(NMSettingVlanClass *klass) * prefer the detected ID from the DEVICE over VLAN_ID. * ---end--- */ - obj_properties[PROP_ID] = - g_param_spec_uint(NM_SETTING_VLAN_ID, - "", - "", - 0, - 4095, - 0, - G_PARAM_READWRITE | NM_SETTING_PARAM_INFERRABLE | G_PARAM_STATIC_STRINGS); + _nm_setting_property_define_direct_uint32(properties_override, + obj_properties, + NM_SETTING_VLAN_ID, + PROP_ID, + 0, + 4095, + 0, + NM_SETTING_PARAM_INFERRABLE, + NMSettingVlanPrivate, + id); /** * NMSettingVlan:flags: diff --git a/src/libnm-core-impl/nm-setting-wifi-p2p.c b/src/libnm-core-impl/nm-setting-wifi-p2p.c index 1d27ee538a..06d450fccb 100644 --- a/src/libnm-core-impl/nm-setting-wifi-p2p.c +++ b/src/libnm-core-impl/nm-setting-wifi-p2p.c @@ -35,10 +35,9 @@ NM_GOBJECT_PROPERTIES_DEFINE_BASE(PROP_PEER, PROP_WPS_METHOD, PROP_WFD_IES, ); typedef struct { - char * peer_mac_address; + char * peer; GBytes *wfd_ies; - - NMSettingWirelessSecurityWpsMethod wps_method; + guint32 wps_method; } NMSettingWifiP2PPrivate; struct _NMSettingWifiP2P { @@ -70,7 +69,7 @@ nm_setting_wifi_p2p_get_peer(NMSettingWifiP2P *setting) { g_return_val_if_fail(NM_IS_SETTING_WIFI_P2P(setting), NULL); - return NM_SETTING_WIFI_P2P_GET_PRIVATE(setting)->peer_mac_address; + return NM_SETTING_WIFI_P2P_GET_PRIVATE(setting)->peer; } /** @@ -113,7 +112,7 @@ verify(NMSetting *setting, NMConnection *connection, GError **error) { NMSettingWifiP2PPrivate *priv = NM_SETTING_WIFI_P2P_GET_PRIVATE(setting); - if (!priv->peer_mac_address) { + if (!priv->peer) { g_set_error_literal(error, NM_CONNECTION_ERROR, NM_CONNECTION_ERROR_MISSING_PROPERTY, @@ -125,7 +124,7 @@ verify(NMSetting *setting, NMConnection *connection, GError **error) return FALSE; } - if (!nm_utils_hwaddr_valid(priv->peer_mac_address, ETH_ALEN)) { + if (!nm_utils_hwaddr_valid(priv->peer, ETH_ALEN)) { g_set_error_literal(error, NM_CONNECTION_ERROR, NM_CONNECTION_ERROR_INVALID_PROPERTY, @@ -149,53 +148,6 @@ verify(NMSetting *setting, NMConnection *connection, GError **error) /*****************************************************************************/ -static void -get_property(GObject *object, guint prop_id, GValue *value, GParamSpec *pspec) -{ - NMSettingWifiP2P *setting = NM_SETTING_WIFI_P2P(object); - - switch (prop_id) { - case PROP_PEER: - g_value_set_string(value, nm_setting_wifi_p2p_get_peer(setting)); - break; - case PROP_WPS_METHOD: - g_value_set_uint(value, nm_setting_wifi_p2p_get_wps_method(setting)); - break; - case PROP_WFD_IES: - g_value_set_boxed(value, nm_setting_wifi_p2p_get_wfd_ies(setting)); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec); - break; - } -} - -static void -set_property(GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec) -{ - NMSettingWifiP2PPrivate *priv = NM_SETTING_WIFI_P2P_GET_PRIVATE(object); - - switch (prop_id) { - case PROP_PEER: - g_free(priv->peer_mac_address); - priv->peer_mac_address = - _nm_utils_hwaddr_canonical_or_invalid(g_value_get_string(value), ETH_ALEN); - break; - case PROP_WPS_METHOD: - priv->wps_method = g_value_get_uint(value); - break; - case PROP_WFD_IES: - nm_clear_pointer(&priv->wfd_ies, g_bytes_unref); - priv->wfd_ies = g_value_dup_boxed(value); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec); - break; - } -} - -/*****************************************************************************/ - static void nm_setting_wifi_p2p_init(NMSettingWifiP2P *setting) {} @@ -215,26 +167,15 @@ nm_setting_wifi_p2p_new(void) return g_object_new(NM_TYPE_SETTING_WIFI_P2P, NULL); } -static void -finalize(GObject *object) -{ - NMSettingWifiP2PPrivate *priv = NM_SETTING_WIFI_P2P_GET_PRIVATE(object); - - g_free(priv->peer_mac_address); - g_bytes_unref(priv->wfd_ies); - - G_OBJECT_CLASS(nm_setting_wifi_p2p_parent_class)->finalize(object); -} - static void nm_setting_wifi_p2p_class_init(NMSettingWifiP2PClass *setting_wifi_p2p_class) { - GObjectClass * object_class = G_OBJECT_CLASS(setting_wifi_p2p_class); - NMSettingClass *setting_class = NM_SETTING_CLASS(setting_wifi_p2p_class); + GObjectClass * object_class = G_OBJECT_CLASS(setting_wifi_p2p_class); + NMSettingClass *setting_class = NM_SETTING_CLASS(setting_wifi_p2p_class); + GArray * properties_override = _nm_sett_info_property_override_create_array(); - object_class->get_property = get_property; - object_class->set_property = set_property; - object_class->finalize = finalize; + object_class->get_property = _nm_setting_property_get_property_direct; + object_class->set_property = _nm_setting_property_set_property_direct; setting_class->verify = verify; @@ -254,11 +195,13 @@ nm_setting_wifi_p2p_class_init(NMSettingWifiP2PClass *setting_wifi_p2p_class) * (e.g. 0;34;104;18;121;162). * ---end--- */ - obj_properties[PROP_PEER] = g_param_spec_string(NM_SETTING_WIFI_P2P_PEER, - "", - "", - NULL, - G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); + _nm_setting_property_define_direct_string(properties_override, + obj_properties, + NM_SETTING_WIFI_P2P_PEER, + PROP_PEER, + NM_SETTING_PARAM_NONE, + NMSettingWifiP2P, + _priv.peer); /** * NMSettingWifiP2P:wps-method: @@ -270,14 +213,16 @@ nm_setting_wifi_p2p_class_init(NMSettingWifiP2PClass *setting_wifi_p2p_class) * * Since: 1.16 */ - obj_properties[PROP_WPS_METHOD] = g_param_spec_uint( - NM_SETTING_WIFI_P2P_WPS_METHOD, - "", - "", - 0, - G_MAXUINT32, - NM_SETTING_WIRELESS_SECURITY_WPS_METHOD_DEFAULT, - G_PARAM_READWRITE | NM_SETTING_PARAM_FUZZY_IGNORE | G_PARAM_STATIC_STRINGS); + _nm_setting_property_define_direct_uint32(properties_override, + obj_properties, + NM_SETTING_WIFI_P2P_WPS_METHOD, + PROP_WPS_METHOD, + 0, + G_MAXUINT32, + NM_SETTING_WIRELESS_SECURITY_WPS_METHOD_DEFAULT, + NM_SETTING_PARAM_FUZZY_IGNORE, + NMSettingWifiP2P, + _priv.wps_method); /** * NMSettingWifiP2P:wfd-ies: @@ -291,14 +236,19 @@ nm_setting_wifi_p2p_class_init(NMSettingWifiP2PClass *setting_wifi_p2p_class) * * Since: 1.16 */ - obj_properties[PROP_WFD_IES] = g_param_spec_boxed( - NM_SETTING_WIFI_P2P_WFD_IES, - "", - "", - G_TYPE_BYTES, - G_PARAM_READWRITE | NM_SETTING_PARAM_FUZZY_IGNORE | G_PARAM_STATIC_STRINGS); + _nm_setting_property_define_direct_bytes(properties_override, + obj_properties, + NM_SETTING_WIFI_P2P_WFD_IES, + PROP_WFD_IES, + NM_SETTING_PARAM_FUZZY_IGNORE, + NMSettingWifiP2P, + _priv.wfd_ies); g_object_class_install_properties(object_class, _PROPERTY_ENUMS_LAST, obj_properties); - _nm_setting_class_commit(setting_class, NM_META_SETTING_TYPE_WIFI_P2P, NULL, NULL, 0); + _nm_setting_class_commit(setting_class, + NM_META_SETTING_TYPE_WIFI_P2P, + NULL, + properties_override, + 0); } diff --git a/src/libnm-core-impl/nm-setting-wireless.c b/src/libnm-core-impl/nm-setting-wireless.c index f15e98efae..f5a4cb6a85 100644 --- a/src/libnm-core-impl/nm-setting-wireless.c +++ b/src/libnm-core-impl/nm-setting-wireless.c @@ -1156,9 +1156,6 @@ get_property(GObject *object, guint prop_id, GValue *value, GParamSpec *pspec) NMSettingWirelessPrivate *priv = NM_SETTING_WIRELESS_GET_PRIVATE(object); switch (prop_id) { - case PROP_SSID: - g_value_set_boxed(value, nm_setting_wireless_get_ssid(setting)); - break; case PROP_MODE: g_value_set_string(value, nm_setting_wireless_get_mode(setting)); break; @@ -1168,18 +1165,12 @@ get_property(GObject *object, guint prop_id, GValue *value, GParamSpec *pspec) case PROP_CHANNEL: g_value_set_uint(value, nm_setting_wireless_get_channel(setting)); break; - case PROP_BSSID: - g_value_set_string(value, nm_setting_wireless_get_bssid(setting)); - break; case PROP_RATE: g_value_set_uint(value, nm_setting_wireless_get_rate(setting)); break; case PROP_TX_POWER: g_value_set_uint(value, nm_setting_wireless_get_tx_power(setting)); break; - case PROP_MAC_ADDRESS: - g_value_set_string(value, nm_setting_wireless_get_mac_address(setting)); - break; case PROP_CLONED_MAC_ADDRESS: g_value_set_string(value, nm_setting_wireless_get_cloned_mac_address(setting)); break; @@ -1199,9 +1190,6 @@ get_property(GObject *object, guint prop_id, GValue *value, GParamSpec *pspec) ? nm_strv_dup((char **) priv->seen_bssids->pdata, priv->seen_bssids->len, TRUE) : NULL); break; - case PROP_HIDDEN: - g_value_set_boolean(value, nm_setting_wireless_get_hidden(setting)); - break; case PROP_POWERSAVE: g_value_set_uint(value, nm_setting_wireless_get_powersave(setting)); break; @@ -1215,7 +1203,7 @@ get_property(GObject *object, guint prop_id, GValue *value, GParamSpec *pspec) g_value_set_enum(value, priv->ap_isolation); break; default: - G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec); + _nm_setting_property_get_property_direct(object, prop_id, value, pspec); break; } } @@ -1229,11 +1217,6 @@ set_property(GObject *object, guint prop_id, const GValue *value, GParamSpec *ps gboolean bool_val; switch (prop_id) { - case PROP_SSID: - if (priv->ssid) - g_bytes_unref(priv->ssid); - priv->ssid = g_value_dup_boxed(value); - break; case PROP_MODE: g_free(priv->mode); priv->mode = g_value_dup_string(value); @@ -1245,21 +1228,12 @@ set_property(GObject *object, guint prop_id, const GValue *value, GParamSpec *ps case PROP_CHANNEL: priv->channel = g_value_get_uint(value); break; - case PROP_BSSID: - g_free(priv->bssid); - priv->bssid = _nm_utils_hwaddr_canonical_or_invalid(g_value_get_string(value), ETH_ALEN); - break; case PROP_RATE: priv->rate = g_value_get_uint(value); break; case PROP_TX_POWER: priv->tx_power = g_value_get_uint(value); break; - case PROP_MAC_ADDRESS: - g_free(priv->device_mac_address); - priv->device_mac_address = - _nm_utils_hwaddr_canonical_or_invalid(g_value_get_string(value), ETH_ALEN); - break; case PROP_CLONED_MAC_ADDRESS: bool_val = !!priv->cloned_mac_address; g_free(priv->cloned_mac_address); @@ -1311,9 +1285,6 @@ set_property(GObject *object, guint prop_id, const GValue *value, GParamSpec *ps } break; } - case PROP_HIDDEN: - priv->hidden = g_value_get_boolean(value); - break; case PROP_POWERSAVE: priv->powersave = g_value_get_uint(value); break; @@ -1327,7 +1298,7 @@ set_property(GObject *object, guint prop_id, const GValue *value, GParamSpec *ps priv->ap_isolation = g_value_get_enum(value); break; default: - G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec); + _nm_setting_property_set_property_direct(object, prop_id, value, pspec); break; } } @@ -1368,8 +1339,6 @@ finalize(GObject *object) g_free(priv->mode); g_free(priv->band); - if (priv->ssid) - g_bytes_unref(priv->ssid); g_free(priv->cloned_mac_address); g_free(priv->generate_mac_address_mask); g_array_unref(priv->mac_address_blacklist); @@ -1411,11 +1380,13 @@ nm_setting_wireless_class_init(NMSettingWirelessClass *klass) * example: ESSID="Quick Net" * ---end--- */ - obj_properties[PROP_SSID] = g_param_spec_boxed(NM_SETTING_WIRELESS_SSID, - "", - "", - G_TYPE_BYTES, - G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); + _nm_setting_property_define_direct_bytes(properties_override, + obj_properties, + NM_SETTING_WIRELESS_SSID, + PROP_SSID, + NM_SETTING_PARAM_NONE, + NMSettingWirelessPrivate, + ssid); /** * NMSettingWireless:mode: diff --git a/src/libnm-core-impl/nm-setting.c b/src/libnm-core-impl/nm-setting.c index f5750b7cf1..9ef9e96c43 100644 --- a/src/libnm-core-impl/nm-setting.c +++ b/src/libnm-core-impl/nm-setting.c @@ -375,19 +375,7 @@ _nm_setting_class_commit(NMSettingClass * setting_class, nm_assert(p->param_spec); vtype = p->param_spec->value_type; - if (vtype == G_TYPE_BOOLEAN) - p->property_type = NM_SETT_INFO_PROPERT_TYPE_GPROP( - G_VARIANT_TYPE_BOOLEAN, - .compare_fcn = _nm_setting_property_compare_fcn_default, - .from_dbus_fcn = _nm_setting_property_from_dbus_fcn_gprop, - .from_dbus_is_full = TRUE); - else if (vtype == G_TYPE_UCHAR) - p->property_type = NM_SETT_INFO_PROPERT_TYPE_GPROP( - G_VARIANT_TYPE_BYTE, - .compare_fcn = _nm_setting_property_compare_fcn_default, - .from_dbus_fcn = _nm_setting_property_from_dbus_fcn_gprop, - .from_dbus_is_full = TRUE); - else if (vtype == G_TYPE_INT) + if (vtype == G_TYPE_INT) p->property_type = &nm_sett_info_propert_type_plain_i; else if (vtype == G_TYPE_UINT) p->property_type = &nm_sett_info_propert_type_plain_u; @@ -397,12 +385,6 @@ _nm_setting_class_commit(NMSettingClass * setting_class, .compare_fcn = _nm_setting_property_compare_fcn_default, .from_dbus_fcn = _nm_setting_property_from_dbus_fcn_gprop, .from_dbus_is_full = TRUE); - else if (vtype == G_TYPE_UINT64) - p->property_type = NM_SETT_INFO_PROPERT_TYPE_GPROP( - G_VARIANT_TYPE_UINT64, - .compare_fcn = _nm_setting_property_compare_fcn_default, - .from_dbus_fcn = _nm_setting_property_from_dbus_fcn_gprop, - .from_dbus_is_full = TRUE); else if (vtype == G_TYPE_STRING) { nm_assert(nm_streq(p->name, NM_SETTING_NAME) == (!NM_FLAGS_HAS(p->param_spec->flags, G_PARAM_WRITABLE))); @@ -427,14 +409,7 @@ _nm_setting_class_commit(NMSettingClass * setting_class, .compare_fcn = _nm_setting_property_compare_fcn_default, .from_dbus_fcn = _nm_setting_property_from_dbus_fcn_gprop, .from_dbus_is_full = TRUE); - else if (vtype == G_TYPE_BYTES) { - p->property_type = NM_SETT_INFO_PROPERT_TYPE_GPROP( - G_VARIANT_TYPE_BYTESTRING, - .typdata_to_dbus.gprop_type = NM_SETTING_PROPERTY_TO_DBUS_FCN_GPROP_TYPE_BYTES, - .compare_fcn = _nm_setting_property_compare_fcn_default, - .from_dbus_fcn = _nm_setting_property_from_dbus_fcn_gprop, - .from_dbus_is_full = TRUE); - } else if (g_type_is_a(vtype, G_TYPE_ENUM)) { + else if (g_type_is_a(vtype, G_TYPE_ENUM)) { p->property_type = NM_SETT_INFO_PROPERT_TYPE_GPROP( G_VARIANT_TYPE_INT32, .typdata_to_dbus.gprop_type = NM_SETTING_PROPERTY_TO_DBUS_FCN_GPROP_TYPE_ENUM, @@ -1234,9 +1209,6 @@ _nm_setting_property_to_dbus_fcn_gprop(_NM_SETT_INFO_PROP_TO_DBUS_FCN_ARGS _nm_n switch (property_info->property_type->typdata_to_dbus.gprop_type) { case NM_SETTING_PROPERTY_TO_DBUS_FCN_GPROP_TYPE_DEFAULT: return g_dbus_gvalue_to_gvariant(&prop_value, property_info->property_type->dbus_type); - case NM_SETTING_PROPERTY_TO_DBUS_FCN_GPROP_TYPE_BYTES: - nm_assert(G_VALUE_HOLDS(&prop_value, G_TYPE_BYTES)); - return nm_g_bytes_to_variant_ay(g_value_get_boxed(&prop_value)); case NM_SETTING_PROPERTY_TO_DBUS_FCN_GPROP_TYPE_ENUM: return nm_g_variant_maybe_singleton_i(g_value_get_enum(&prop_value)); case NM_SETTING_PROPERTY_TO_DBUS_FCN_GPROP_TYPE_FLAGS: diff --git a/src/libnm-core-impl/tests/test-setting.c b/src/libnm-core-impl/tests/test-setting.c index 4187077172..7444f2c143 100644 --- a/src/libnm-core-impl/tests/test-setting.c +++ b/src/libnm-core-impl/tests/test-setting.c @@ -4589,9 +4589,6 @@ test_setting_metadata(void) } else if (sip->property_type->to_dbus_fcn == _nm_setting_property_to_dbus_fcn_gprop) { g_assert(sip->param_spec); switch (sip->property_type->typdata_to_dbus.gprop_type) { - case NM_SETTING_PROPERTY_TO_DBUS_FCN_GPROP_TYPE_BYTES: - g_assert(sip->param_spec->value_type == G_TYPE_BYTES); - goto check_done; case NM_SETTING_PROPERTY_TO_DBUS_FCN_GPROP_TYPE_ENUM: g_assert(g_type_is_a(sip->param_spec->value_type, G_TYPE_ENUM)); goto check_done; diff --git a/src/libnm-core-intern/nm-core-internal.h b/src/libnm-core-intern/nm-core-internal.h index d591c51fb8..93d75e442d 100644 --- a/src/libnm-core-intern/nm-core-internal.h +++ b/src/libnm-core-intern/nm-core-internal.h @@ -660,7 +660,6 @@ const NMSettInfoSetting *nmtst_sett_info_settings(void); typedef enum _nm_packed { NM_SETTING_PROPERTY_TO_DBUS_FCN_GPROP_TYPE_DEFAULT = 0, - 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,