[network-manager-openvpn] core: don't ask for password if it's marked NOT_REQUIRED



commit 0259c41e3859c77866577b7b0d9967ed4a0a3743
Author: Dan Williams <dcbw redhat com>
Date:   Tue Feb 19 11:53:58 2013 -0600

    core: don't ask for password if it's marked NOT_REQUIRED
    
    The secret flags were getting ignored by the core, so even if the
    password was marked NOT_REQUIRED, it would be asked for.

 src/nm-openvpn-service.c |   15 +++++++++++++--
 1 files changed, 13 insertions(+), 2 deletions(-)
---
diff --git a/src/nm-openvpn-service.c b/src/nm-openvpn-service.c
index cabb5a0..7b4cbd7 100644
--- a/src/nm-openvpn-service.c
+++ b/src/nm-openvpn-service.c
@@ -1115,6 +1115,7 @@ static const char *
 check_need_secrets (NMSettingVPN *s_vpn, gboolean *need_secrets)
 {
        const char *tmp, *key, *ctype;
+       NMSettingSecretFlags secret_flags = NM_SETTING_SECRET_FLAG_NONE;
 
        g_return_val_if_fail (s_vpn != NULL, FALSE);
        g_return_val_if_fail (need_secrets != NULL, FALSE);
@@ -1132,12 +1133,22 @@ check_need_secrets (NMSettingVPN *s_vpn, gboolean *need_secrets)
                if (is_encrypted (key) && !nm_setting_vpn_get_secret (s_vpn, NM_OPENVPN_KEY_CERTPASS))
                        *need_secrets = TRUE;
 
-               if (!nm_setting_vpn_get_secret (s_vpn, NM_OPENVPN_KEY_PASSWORD))
+               if (!nm_setting_vpn_get_secret (s_vpn, NM_OPENVPN_KEY_PASSWORD)) {
                        *need_secrets = TRUE;
+                       if (nm_setting_get_secret_flags (NM_SETTING (s_vpn), NM_OPENVPN_KEY_PASSWORD, 
&secret_flags, NULL)) {
+                               if (secret_flags & NM_SETTING_SECRET_FLAG_NOT_REQUIRED)
+                                       *need_secrets = FALSE;
+                       }
+               }
        } else if (!strcmp (ctype, NM_OPENVPN_CONTYPE_PASSWORD)) {
                /* Will require a password */
-               if (!nm_setting_vpn_get_secret (s_vpn, NM_OPENVPN_KEY_PASSWORD))
+               if (!nm_setting_vpn_get_secret (s_vpn, NM_OPENVPN_KEY_PASSWORD)) {
                        *need_secrets = TRUE;
+                       if (nm_setting_get_secret_flags (NM_SETTING (s_vpn), NM_OPENVPN_KEY_PASSWORD, 
&secret_flags, NULL)) {
+                               if (secret_flags & NM_SETTING_SECRET_FLAG_NOT_REQUIRED)
+                                       *need_secrets = FALSE;
+                       }
+               }
        } else if (!strcmp (ctype, NM_OPENVPN_CONTYPE_TLS)) {
                /* May require private key password */
                key = nm_setting_vpn_get_data_item (s_vpn, NM_OPENVPN_KEY_KEY);


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]