summary refs log tree commit diff
path: root/src/libnm-core-impl/nm-setting-gsm.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/libnm-core-impl/nm-setting-gsm.c')
-rw-r--r--src/libnm-core-impl/nm-setting-gsm.c342
1 files changed, 106 insertions, 236 deletions
diff --git a/src/libnm-core-impl/nm-setting-gsm.c b/src/libnm-core-impl/nm-setting-gsm.c
index 8b2749d9..15460ccc 100644
--- a/src/libnm-core-impl/nm-setting-gsm.c
+++ b/src/libnm-core-impl/nm-setting-gsm.c
@@ -39,20 +39,20 @@ NM_GOBJECT_PROPERTIES_DEFINE_BASE(PROP_AUTO_CONFIG,
                                   PROP_MTU, );
 
 typedef struct {
-    char *               number; /* For dialing, duh */
-    char *               username;
-    char *               password;
-    char *               device_id;
-    char *               sim_id;
-    char *               sim_operator_id;
-    char *               apn;        /* NULL for dynamic */
-    char *               network_id; /* for manual registration or NULL for automatic */
-    char *               pin;
-    NMSettingSecretFlags password_flags;
-    NMSettingSecretFlags pin_flags;
-    guint32              mtu;
-    bool                 auto_config;
-    bool                 home_only;
+    char   *number;
+    char   *username;
+    char   *password;
+    char   *device_id;
+    char   *sim_id;
+    char   *sim_operator_id;
+    char   *apn;
+    char   *network_id;
+    char   *pin;
+    guint   password_flags;
+    guint   pin_flags;
+    guint32 mtu;
+    bool    auto_config;
+    bool    home_only;
 } NMSettingGsmPrivate;
 
 /**
@@ -463,7 +463,7 @@ static GPtrArray *
 need_secrets(NMSetting *setting)
 {
     NMSettingGsmPrivate *priv    = NM_SETTING_GSM_GET_PRIVATE(setting);
-    GPtrArray *          secrets = NULL;
+    GPtrArray           *secrets = NULL;
 
     if (priv->password && *priv->password)
         return NULL;
@@ -481,132 +481,6 @@ need_secrets(NMSetting *setting)
 /*****************************************************************************/
 
 static void
-get_property(GObject *object, guint prop_id, GValue *value, GParamSpec *pspec)
-{
-    NMSettingGsm *setting = NM_SETTING_GSM(object);
-
-    switch (prop_id) {
-    case PROP_AUTO_CONFIG:
-        g_value_set_boolean(value, nm_setting_gsm_get_auto_config(setting));
-        break;
-    case PROP_NUMBER:
-        g_value_set_string(value, nm_setting_gsm_get_number(setting));
-        break;
-    case PROP_USERNAME:
-        g_value_set_string(value, nm_setting_gsm_get_username(setting));
-        break;
-    case PROP_PASSWORD:
-        g_value_set_string(value, nm_setting_gsm_get_password(setting));
-        break;
-    case PROP_PASSWORD_FLAGS:
-        g_value_set_flags(value, nm_setting_gsm_get_password_flags(setting));
-        break;
-    case PROP_APN:
-        g_value_set_string(value, nm_setting_gsm_get_apn(setting));
-        break;
-    case PROP_NETWORK_ID:
-        g_value_set_string(value, nm_setting_gsm_get_network_id(setting));
-        break;
-    case PROP_PIN:
-        g_value_set_string(value, nm_setting_gsm_get_pin(setting));
-        break;
-    case PROP_PIN_FLAGS:
-        g_value_set_flags(value, nm_setting_gsm_get_pin_flags(setting));
-        break;
-    case PROP_HOME_ONLY:
-        g_value_set_boolean(value, nm_setting_gsm_get_home_only(setting));
-        break;
-    case PROP_DEVICE_ID:
-        g_value_set_string(value, nm_setting_gsm_get_device_id(setting));
-        break;
-    case PROP_SIM_ID:
-        g_value_set_string(value, nm_setting_gsm_get_sim_id(setting));
-        break;
-    case PROP_SIM_OPERATOR_ID:
-        g_value_set_string(value, nm_setting_gsm_get_sim_operator_id(setting));
-        break;
-    case PROP_MTU:
-        g_value_set_uint(value, nm_setting_gsm_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)
-{
-    NMSettingGsmPrivate *priv = NM_SETTING_GSM_GET_PRIVATE(object);
-    char *               tmp;
-
-    switch (prop_id) {
-    case PROP_AUTO_CONFIG:
-        priv->auto_config = g_value_get_boolean(value);
-        break;
-    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_APN:
-        g_free(priv->apn);
-        priv->apn = NULL;
-        tmp       = g_value_dup_string(value);
-        if (tmp)
-            priv->apn = g_strstrip(tmp);
-        break;
-    case PROP_NETWORK_ID:
-        g_free(priv->network_id);
-        priv->network_id = NULL;
-        tmp              = g_value_dup_string(value);
-        if (tmp)
-            priv->network_id = g_strstrip(tmp);
-        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_HOME_ONLY:
-        priv->home_only = g_value_get_boolean(value);
-        break;
-    case PROP_DEVICE_ID:
-        g_free(priv->device_id);
-        priv->device_id = g_value_dup_string(value);
-        break;
-    case PROP_SIM_ID:
-        g_free(priv->sim_id);
-        priv->sim_id = g_value_dup_string(value);
-        break;
-    case PROP_SIM_OPERATOR_ID:
-        g_free(priv->sim_operator_id);
-        priv->sim_operator_id = g_value_dup_string(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_gsm_init(NMSettingGsm *setting)
 {}
 
@@ -624,35 +498,16 @@ nm_setting_gsm_new(void)
 }
 
 static void
-finalize(GObject *object)
-{
-    NMSettingGsmPrivate *priv = NM_SETTING_GSM_GET_PRIVATE(object);
-
-    g_free(priv->number);
-    g_free(priv->username);
-    g_free(priv->password);
-    g_free(priv->apn);
-    g_free(priv->network_id);
-    g_free(priv->pin);
-    g_free(priv->device_id);
-    g_free(priv->sim_id);
-    g_free(priv->sim_operator_id);
-
-    G_OBJECT_CLASS(nm_setting_gsm_parent_class)->finalize(object);
-}
-
-static void
 nm_setting_gsm_class_init(NMSettingGsmClass *klass)
 {
-    GObjectClass *  object_class        = G_OBJECT_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();
+    GArray         *properties_override = _nm_sett_info_property_override_create_array();
 
     g_type_class_add_private(klass, sizeof(NMSettingGsmPrivate));
 
-    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;
@@ -684,11 +539,13 @@ nm_setting_gsm_class_init(NMSettingGsmClass *klass)
      *
      * Deprecated: 1.16: User-provided values for this setting are no longer used.
      **/
-    obj_properties[PROP_NUMBER] = g_param_spec_string(NM_SETTING_GSM_NUMBER,
-                                                      "",
-                                                      "",
-                                                      NULL,
-                                                      G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
+    _nm_setting_property_define_direct_string(properties_override,
+                                              obj_properties,
+                                              NM_SETTING_GSM_NUMBER,
+                                              PROP_NUMBER,
+                                              NM_SETTING_PARAM_NONE,
+                                              NMSettingGsmPrivate,
+                                              number);
 
     /**
      * NMSettingGsm:username:
@@ -697,11 +554,13 @@ nm_setting_gsm_class_init(NMSettingGsmClass *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_GSM_USERNAME,
-                                                        "",
-                                                        "",
-                                                        NULL,
-                                                        G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
+    _nm_setting_property_define_direct_string(properties_override,
+                                              obj_properties,
+                                              NM_SETTING_GSM_USERNAME,
+                                              PROP_USERNAME,
+                                              NM_SETTING_PARAM_NONE,
+                                              NMSettingGsmPrivate,
+                                              username);
 
     /**
      * NMSettingGsm:password:
@@ -710,26 +569,25 @@ nm_setting_gsm_class_init(NMSettingGsmClass *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_GSM_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_GSM_PASSWORD,
+                                              PROP_PASSWORD,
+                                              NM_SETTING_PARAM_SECRET,
+                                              NMSettingGsmPrivate,
+                                              password);
 
     /**
      * NMSettingGsm:password-flags:
      *
      * Flags indicating how to handle the #NMSettingGsm:password property.
      **/
-    obj_properties[PROP_PASSWORD_FLAGS] =
-        g_param_spec_flags(NM_SETTING_GSM_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_GSM_PASSWORD_FLAGS,
+                                                    PROP_PASSWORD_FLAGS,
+                                                    NMSettingGsmPrivate,
+                                                    password_flags);
     /**
      * NMSettingGsm:apn:
      *
@@ -741,11 +599,14 @@ nm_setting_gsm_class_init(NMSettingGsmClass *klass)
      * The APN may only be composed of the characters a-z, 0-9, ., and - per GSM
      * 03.60 Section 14.9.
      **/
-    obj_properties[PROP_APN] = g_param_spec_string(NM_SETTING_GSM_APN,
-                                                   "",
-                                                   "",
-                                                   NULL,
-                                                   G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
+    _nm_setting_property_define_direct_string(properties_override,
+                                              obj_properties,
+                                              NM_SETTING_GSM_APN,
+                                              PROP_APN,
+                                              NM_SETTING_PARAM_NONE,
+                                              NMSettingGsmPrivate,
+                                              apn,
+                                              .direct_set_string_strip = TRUE);
 
     /**
      * NMSettingGsm:network-id:
@@ -756,12 +617,14 @@ nm_setting_gsm_class_init(NMSettingGsmClass *klass)
      * This can be used to ensure that the device does not roam when direct
      * roaming control of the device is not otherwise possible.
      **/
-    obj_properties[PROP_NETWORK_ID] =
-        g_param_spec_string(NM_SETTING_GSM_NETWORK_ID,
-                            "",
-                            "",
-                            NULL,
-                            G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
+    _nm_setting_property_define_direct_string(properties_override,
+                                              obj_properties,
+                                              NM_SETTING_GSM_NETWORK_ID,
+                                              PROP_NETWORK_ID,
+                                              NM_SETTING_PARAM_NONE,
+                                              NMSettingGsmPrivate,
+                                              network_id,
+                                              .direct_set_string_strip = TRUE);
 
     /**
      * NMSettingGsm:pin:
@@ -770,24 +633,25 @@ nm_setting_gsm_class_init(NMSettingGsmClass *klass)
      * operations are requested.  Specify the PIN here to allow operation of the
      * device.
      **/
-    obj_properties[PROP_PIN] =
-        g_param_spec_string(NM_SETTING_GSM_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_GSM_PIN,
+                                              PROP_PIN,
+                                              NM_SETTING_PARAM_SECRET,
+                                              NMSettingGsmPrivate,
+                                              pin);
 
     /**
      * NMSettingGsm:pin-flags:
      *
      * Flags indicating how to handle the #NMSettingGsm:pin property.
      **/
-    obj_properties[PROP_PIN_FLAGS] = g_param_spec_flags(NM_SETTING_GSM_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_GSM_PIN_FLAGS,
+                                                    PROP_PIN_FLAGS,
+                                                    NMSettingGsmPrivate,
+                                                    pin_flags);
 
     /**
      * NMSettingGsm:home-only:
@@ -813,12 +677,13 @@ nm_setting_gsm_class_init(NMSettingGsmClass *klass)
      *
      * Since: 1.2
      **/
-    obj_properties[PROP_DEVICE_ID] =
-        g_param_spec_string(NM_SETTING_GSM_DEVICE_ID,
-                            "",
-                            "",
-                            NULL,
-                            G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
+    _nm_setting_property_define_direct_string(properties_override,
+                                              obj_properties,
+                                              NM_SETTING_GSM_DEVICE_ID,
+                                              PROP_DEVICE_ID,
+                                              NM_SETTING_PARAM_NONE,
+                                              NMSettingGsmPrivate,
+                                              device_id);
 
     /**
      * NMSettingGsm:sim-id:
@@ -830,11 +695,13 @@ nm_setting_gsm_class_init(NMSettingGsmClass *klass)
      *
      * Since: 1.2
      **/
-    obj_properties[PROP_SIM_ID] = g_param_spec_string(NM_SETTING_GSM_SIM_ID,
-                                                      "",
-                                                      "",
-                                                      NULL,
-                                                      G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
+    _nm_setting_property_define_direct_string(properties_override,
+                                              obj_properties,
+                                              NM_SETTING_GSM_SIM_ID,
+                                              PROP_SIM_ID,
+                                              NM_SETTING_PARAM_NONE,
+                                              NMSettingGsmPrivate,
+                                              sim_id);
 
     /**
      * NMSettingGsm:sim-operator-id:
@@ -847,12 +714,13 @@ nm_setting_gsm_class_init(NMSettingGsmClass *klass)
      *
      * Since: 1.2
      **/
-    obj_properties[PROP_SIM_OPERATOR_ID] =
-        g_param_spec_string(NM_SETTING_GSM_SIM_OPERATOR_ID,
-                            "",
-                            "",
-                            NULL,
-                            G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
+    _nm_setting_property_define_direct_string(properties_override,
+                                              obj_properties,
+                                              NM_SETTING_GSM_SIM_OPERATOR_ID,
+                                              PROP_SIM_OPERATOR_ID,
+                                              NM_SETTING_PARAM_NONE,
+                                              NMSettingGsmPrivate,
+                                              sim_operator_id);
 
     /**
      * NMSettingGsm:mtu:
@@ -862,14 +730,16 @@ nm_setting_gsm_class_init(NMSettingGsmClass *klass)
      *
      * Since: 1.8
      **/
-    obj_properties[PROP_MTU] = g_param_spec_uint(NM_SETTING_GSM_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_GSM_MTU,
+                                              PROP_MTU,
+                                              0,
+                                              G_MAXUINT32,
+                                              0,
+                                              NM_SETTING_PARAM_FUZZY_IGNORE,
+                                              NMSettingGsmPrivate,
+                                              mtu);
 
     /* Ignore incoming deprecated properties */
     _nm_properties_override_dbus(properties_override,