From 1951029908f10cd8e830c180cefb876135c724f7 Mon Sep 17 00:00:00 2001 From: David Woodhouse Date: Thu, 19 May 2011 23:41:28 +0100 Subject: [PATCH] core: complete the openconnect migration hack; add flags for the saved secrets too (bgo #650383) Commit e083cd5c6396e62ea93ec35bc04fed845c282673 stopped openconnect from saving its secrets. It'd been working for a whole three minutes since my previous commit. We need to have at least one secret with an *extant* flags setting of NM_SETTING_SECRET_FLAG_NONE, in order to trigger a write-out of the new set of secrets. And we might as well list all the secrets we *know* the auth-dialog is going to use, although we know there will be some secrets that we cannot predict in advance (the form entry boxes). --- src/settings/nm-settings.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/settings/nm-settings.c b/src/settings/nm-settings.c index cad4a54ae0..e23e8d1336 100644 --- a/src/settings/nm-settings.c +++ b/src/settings/nm-settings.c @@ -703,6 +703,10 @@ connection_visibility_changed (NMSettingsConnection *connection, #define NM_OPENCONNECT_KEY_GATEWAY "gateway" #define NM_OPENCONNECT_KEY_COOKIE "cookie" #define NM_OPENCONNECT_KEY_GWCERT "gwcert" +#define NM_OPENCONNECT_KEY_XMLCONFIG "xmlconfig" +#define NM_OPENCONNECT_KEY_LASTHOST "lasthost" +#define NM_OPENCONNECT_KEY_AUTOCONNECT "autoconnect" +#define NM_OPENCONNECT_KEY_CERTSIGS "certsigs" static void openconnect_migrate_hack (NMConnection *connection) @@ -721,9 +725,17 @@ openconnect_migrate_hack (NMConnection *connection) return; if (g_strcmp0 (nm_setting_vpn_get_service_type (s_vpn), NM_DBUS_SERVICE_OPENCONNECT) == 0) { + /* These are different for every login session, and should not be stored */ nm_setting_set_secret_flags (NM_SETTING (s_vpn), NM_OPENCONNECT_KEY_GATEWAY, flags, NULL); nm_setting_set_secret_flags (NM_SETTING (s_vpn), NM_OPENCONNECT_KEY_COOKIE, flags, NULL); nm_setting_set_secret_flags (NM_SETTING (s_vpn), NM_OPENCONNECT_KEY_GWCERT, flags, NULL); + + /* These are purely internal data for the auth-dialog, and should be stored */ + flags = 0; + nm_setting_set_secret_flags (NM_SETTING (s_vpn), NM_OPENCONNECT_KEY_XMLCONFIG, flags, NULL); + nm_setting_set_secret_flags (NM_SETTING (s_vpn), NM_OPENCONNECT_KEY_LASTHOST, flags, NULL); + nm_setting_set_secret_flags (NM_SETTING (s_vpn), NM_OPENCONNECT_KEY_AUTOCONNECT, flags, NULL); + nm_setting_set_secret_flags (NM_SETTING (s_vpn), NM_OPENCONNECT_KEY_CERTSIGS, flags, NULL); } }