diff options
Diffstat (limited to 'vpn-daemons/vpnc/src/nm-vpnc-service.c')
-rw-r--r-- | vpn-daemons/vpnc/src/nm-vpnc-service.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/vpn-daemons/vpnc/src/nm-vpnc-service.c b/vpn-daemons/vpnc/src/nm-vpnc-service.c index 0d90e74d7d..feac3a00c2 100644 --- a/vpn-daemons/vpnc/src/nm-vpnc-service.c +++ b/vpn-daemons/vpnc/src/nm-vpnc-service.c @@ -321,6 +321,7 @@ static gboolean nm_vpnc_config_write (gint vpnc_fd, const char *default_user_name, GHashTable *properties, + GHashTable *secrets, GError **error) { WriteConfigInfo *info; @@ -354,6 +355,7 @@ nm_vpnc_config_write (gint vpnc_fd, info = g_malloc0 (sizeof (WriteConfigInfo)); info->fd = vpnc_fd; g_hash_table_foreach (properties, write_one_property, info); + g_hash_table_foreach (secrets, write_one_property, info); *error = info->error; g_free (info); @@ -373,12 +375,14 @@ real_connect (NMVPNPlugin *plugin, g_assert (s_vpn); if (!nm_vpnc_properties_validate (s_vpn->data, error)) goto out; + if (!nm_vpnc_properties_validate (s_vpn->secrets, error)) + goto out; vpnc_fd = nm_vpnc_start_vpnc_binary (NM_VPNC_PLUGIN (plugin), error); if (vpnc_fd < 0) goto out; - if (!nm_vpnc_config_write (vpnc_fd, s_vpn->user_name, s_vpn->data, error)) + if (!nm_vpnc_config_write (vpnc_fd, s_vpn->user_name, s_vpn->data, s_vpn->secrets, error)) goto out; success = TRUE; @@ -412,11 +416,11 @@ real_need_secrets (NMVPNPlugin *plugin, // FIXME: there are some configurations where both passwords are not // required. Make sure they work somehow. - if (!g_hash_table_lookup (s_vpn->data, NM_VPNC_KEY_SECRET)) { + if (!g_hash_table_lookup (s_vpn->secrets, NM_VPNC_KEY_SECRET)) { *setting_name = NM_SETTING_VPN_SETTING_NAME; return TRUE; } - if (!g_hash_table_lookup (s_vpn->data, NM_VPNC_KEY_XAUTH_PASSWORD)) { + if (!g_hash_table_lookup (s_vpn->secrets, NM_VPNC_KEY_XAUTH_PASSWORD)) { *setting_name = NM_SETTING_VPN_SETTING_NAME; return TRUE; } |