diff options
author | Beniamino Galvani <bgalvani@redhat.com> | 2017-08-10 09:57:56 +0200 |
---|---|---|
committer | Beniamino Galvani <bgalvani@redhat.com> | 2017-08-10 13:42:22 +0200 |
commit | bb2a8a4c8612690e5e84146c86949e2058e543a0 (patch) | |
tree | a61c89fae9a7db05cfce54e8f125ab84cda38eb1 | |
parent | 73de9d3e375ca0f7a8ad9be905b1449a6be0b457 (diff) |
agent-simple: always ask VPN secrets having the ONE_TIME flag
-rw-r--r-- | clients/common/nm-secret-agent-simple.c | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/clients/common/nm-secret-agent-simple.c b/clients/common/nm-secret-agent-simple.c index 0faf68a567..4b45e48fbc 100644 --- a/clients/common/nm-secret-agent-simple.c +++ b/clients/common/nm-secret-agent-simple.c @@ -57,6 +57,7 @@ typedef struct { gchar *request_id; NMConnection *connection; gchar **hints; + NMSecretAgentGetSecretsFlags flags; NMSecretAgentOldGetSecretsFunc callback; gpointer callback_data; } NMSecretAgentSimpleRequest; @@ -363,7 +364,11 @@ get_vpn_secret_flags (NMSettingVpn *s_vpn, const char *secret_name) } static void -add_vpn_secret_helper (GPtrArray *secrets, NMSettingVpn *s_vpn, const char *name, const char *ui_name) +add_vpn_secret_helper (GPtrArray *secrets, + NMSettingVpn *s_vpn, + const char *name, + const char *ui_name, + NMVpnPluginSecretsFlags request_flags) { NMSecretAgentSimpleSecret *secret; NMSettingSecretFlags flags; @@ -379,7 +384,8 @@ add_vpn_secret_helper (GPtrArray *secrets, NMSettingVpn *s_vpn, const char *name flags = get_vpn_secret_flags (s_vpn, name); if ( flags & NM_SETTING_SECRET_FLAG_AGENT_OWNED - || flags & NM_SETTING_SECRET_FLAG_NOT_SAVED) { + || flags & NM_SETTING_SECRET_FLAG_NOT_SAVED + || request_flags & NM_VPN_PLUGIN_SECRETS_FLAG_ONE_TIME) { secret = nm_secret_agent_simple_secret_new (ui_name, NM_SETTING (s_vpn), NM_SETTING_VPN_SECRETS, @@ -408,7 +414,7 @@ add_vpn_secrets (NMSecretAgentSimpleRequest *request, if (!vpn_msg && g_str_has_prefix (*iter, VPN_MSG_TAG)) vpn_msg = &(*iter)[NM_STRLEN (VPN_MSG_TAG)]; else - add_vpn_secret_helper (secrets, s_vpn, *iter, *iter); + add_vpn_secret_helper (secrets, s_vpn, *iter, *iter, request->flags); } } @@ -417,7 +423,8 @@ add_vpn_secrets (NMSecretAgentSimpleRequest *request, /* Now add what client thinks might be required, because hints may be empty or incomplete */ p = secret_names = nm_vpn_get_secret_names (nm_setting_vpn_get_service_type (s_vpn)); while (p && p->name) { - add_vpn_secret_helper (secrets, s_vpn, p->name, _(p->ui_name)); + add_vpn_secret_helper (secrets, s_vpn, p->name, _(p->ui_name), + NM_VPN_PLUGIN_SECRETS_FLAG_NONE); p++; } @@ -647,6 +654,7 @@ nm_secret_agent_simple_get_secrets (NMSecretAgentOld *agent, request->callback = callback; request->callback_data = callback_data; request->request_id = request_id; + request->flags = flags; g_hash_table_replace (priv->requests, request->request_id, request); if (priv->enabled) |