clients: add vpn_type member to secret structure in secret agent
authorJiří Klimeš <jklimes@redhat.com>
Fri, 11 Dec 2015 08:54:40 +0000 (09:54 +0100)
committerJiří Klimeš <jklimes@redhat.com>
Sat, 12 Dec 2015 16:37:30 +0000 (17:37 +0100)
It is useful to know what VPN type the secret belongs to.

clients/common/nm-secret-agent-simple.c
clients/common/nm-secret-agent-simple.h

index 6ef1078..233e140 100644 (file)
@@ -162,6 +162,7 @@ nm_secret_agent_simple_secret_free (NMSecretAgentSimpleSecret *secret)
        g_free (secret->prop_name);
        g_free (secret->value);
        g_free (secret->vpn_property);
+       g_free (secret->vpn_type);
        g_free (real->property);
        g_clear_object (&real->setting);
 
@@ -173,6 +174,7 @@ nm_secret_agent_simple_secret_new (const char *name,
                                    NMSetting  *setting,
                                    const char *property,
                                    const char *vpn_property,
+                                   const char *vpn_type,
                                    gboolean    password)
 {
        NMSecretAgentSimpleSecretReal *real;
@@ -183,6 +185,7 @@ nm_secret_agent_simple_secret_new (const char *name,
                                 g_strdup_printf ("%s.%s.%s", nm_setting_get_name (setting), property, vpn_property) :
                                 g_strdup_printf ("%s.%s", nm_setting_get_name (setting), property);
        real->base.vpn_property = g_strdup (vpn_property);
+       real->base.vpn_type = g_strdup (vpn_type);
        real->base.password = password;
 
        if (setting) {
@@ -222,12 +225,14 @@ add_8021x_secrets (NMSecretAgentSimpleRequest *request,
                                                            NM_SETTING (s_8021x),
                                                            NM_SETTING_802_1X_IDENTITY,
                                                            NULL,
+                                                           NULL,
                                                            FALSE);
                g_ptr_array_add (secrets, secret);
                secret = nm_secret_agent_simple_secret_new (_("Password"),
                                                            NM_SETTING (s_8021x),
                                                            NM_SETTING_802_1X_PASSWORD,
                                                            NULL,
+                                                           NULL,
                                                            TRUE);
                g_ptr_array_add (secrets, secret);
                return TRUE;
@@ -238,12 +243,14 @@ add_8021x_secrets (NMSecretAgentSimpleRequest *request,
                                                            NM_SETTING (s_8021x),
                                                            NM_SETTING_802_1X_IDENTITY,
                                                            NULL,
+                                                           NULL,
                                                            FALSE);
                g_ptr_array_add (secrets, secret);
                secret = nm_secret_agent_simple_secret_new (_("Private key password"),
                                                            NM_SETTING (s_8021x),
                                                            NM_SETTING_802_1X_PRIVATE_KEY_PASSWORD,
                                                            NULL,
+                                                           NULL,
                                                            TRUE);
                g_ptr_array_add (secrets, secret);
                return TRUE;
@@ -268,6 +275,7 @@ add_wireless_secrets (NMSecretAgentSimpleRequest *request,
                                                            NM_SETTING (s_wsec),
                                                            NM_SETTING_WIRELESS_SECURITY_PSK,
                                                            NULL,
+                                                           NULL,
                                                            TRUE);
                g_ptr_array_add (secrets, secret);
                return TRUE;
@@ -283,6 +291,7 @@ add_wireless_secrets (NMSecretAgentSimpleRequest *request,
                                                            NM_SETTING (s_wsec),
                                                            key,
                                                            NULL,
+                                                           NULL,
                                                            TRUE);
                g_free (key);
 
@@ -296,6 +305,7 @@ add_wireless_secrets (NMSecretAgentSimpleRequest *request,
                                                                    NM_SETTING (s_wsec),
                                                                    NM_SETTING_WIRELESS_SECURITY_LEAP_PASSWORD,
                                                                    NULL,
+                                                                   NULL,
                                                                    TRUE);
                        g_ptr_array_add (secrets, secret);
                        return TRUE;
@@ -320,18 +330,21 @@ add_pppoe_secrets (NMSecretAgentSimpleRequest *request,
                                                    NM_SETTING (s_pppoe),
                                                    NM_SETTING_PPPOE_USERNAME,
                                                    NULL,
+                                                   NULL,
                                                    FALSE);
        g_ptr_array_add (secrets, secret);
        secret = nm_secret_agent_simple_secret_new (_("Service"),
                                                    NM_SETTING (s_pppoe),
                                                    NM_SETTING_PPPOE_SERVICE,
                                                    NULL,
+                                                   NULL,
                                                    FALSE);
        g_ptr_array_add (secrets, secret);
        secret = nm_secret_agent_simple_secret_new (_("Password"),
                                                    NM_SETTING (s_pppoe),
                                                    NM_SETTING_PPPOE_PASSWORD,
                                                    NULL,
+                                                   NULL,
                                                    TRUE);
        g_ptr_array_add (secrets, secret);
        return TRUE;
@@ -372,6 +385,7 @@ add_vpn_secret_helper (GPtrArray *secrets, NMSettingVpn *s_vpn, const char *name
                                                            NM_SETTING (s_vpn),
                                                            NM_SETTING_VPN_SECRETS,
                                                            name,
+                                                           nm_setting_vpn_get_service_type (s_vpn),
                                                            TRUE);
                g_ptr_array_add (secrets, secret);
        }
@@ -448,6 +462,7 @@ request_secrets_from_ui (NMSecretAgentSimpleRequest *request)
                                                            NM_SETTING (s_con),
                                                            NM_SETTING_CONNECTION_ID,
                                                            NULL,
+                                                           NULL,
                                                            FALSE);
                g_ptr_array_add (secrets, secret);
                ok = add_8021x_secrets (request, secrets);
@@ -466,6 +481,7 @@ request_secrets_from_ui (NMSecretAgentSimpleRequest *request)
                        secret = nm_secret_agent_simple_secret_new (_("PIN"),
                                                                    NM_SETTING (s_gsm),
                                                                    NM_SETTING_GSM_PIN,
+                                                                   NULL,
                                                                    NULL,
                                                                    FALSE);
                        g_ptr_array_add (secrets, secret);
@@ -478,6 +494,7 @@ request_secrets_from_ui (NMSecretAgentSimpleRequest *request)
                                                                    NM_SETTING (s_gsm),
                                                                    NM_SETTING_GSM_PASSWORD,
                                                                    NULL,
+                                                                   NULL,
                                                                    TRUE);
                        g_ptr_array_add (secrets, secret);
                }
@@ -492,6 +509,7 @@ request_secrets_from_ui (NMSecretAgentSimpleRequest *request)
                                                            NM_SETTING (s_cdma),
                                                            NM_SETTING_CDMA_PASSWORD,
                                                            NULL,
+                                                           NULL,
                                                            TRUE);
                g_ptr_array_add (secrets, secret);
        } else if (nm_connection_is_type (request->connection, NM_SETTING_BLUETOOTH_SETTING_NAME)) {
@@ -509,6 +527,7 @@ request_secrets_from_ui (NMSecretAgentSimpleRequest *request)
                                                            setting,
                                                            "password",
                                                            NULL,
+                                                           NULL,
                                                            TRUE);
                g_ptr_array_add (secrets, secret);
        } else if (nm_connection_is_type (request->connection, NM_SETTING_VPN_SETTING_NAME)) {
index a812cfa..d2c5882 100644 (file)
@@ -44,6 +44,7 @@ typedef struct {
 typedef struct {
        char *name, *prop_name, *value;
        char *vpn_property;
+       char *vpn_type;
        gboolean password;
 } NMSecretAgentSimpleSecret;