From 4562a431ad976a3e0df38889d48bb7898f91c672 Mon Sep 17 00:00:00 2001 From: Lubomir Rintel Date: Tue, 26 Jan 2016 17:31:34 +0100 Subject: [PATCH] NetworkAgent: correctly identify the VPN secret requests The non-interactive requests for 'vpn' settings are forwarded to the UI because it is able to talk to the auth helpers. However, the VPN requests are identified by the connection type instead of setting type. That is incorrect and the UI is not prepared to handle such requests; tries to construct a dialog and fails miserably: Gjs-Message: JS LOG: Invalid connection type: vpn (gnome-shell:13133): Gjs-WARNING **: JS ERROR: Error: No property 'text' in property list (or its value was undefined) NetworkSecretDialog<._init@resource:///org/gnome/shell/ui/components/networkAgent.js:60 wrapper@resource:///org/gnome/gjs/modules/lang.js:169 _Base.prototype._construct@resource:///org/gnome/gjs/modules/lang.js:110 Class.prototype._construct/newClass@resource:///org/gnome/gjs/modules/lang.js:204 NetworkAgent<._handleRequest@resource:///org/gnome/shell/ui/components/networkAgent.js:724 wrapper@resource:///org/gnome/gjs/modules/lang.js:169 NetworkAgent<._newRequest@resource:///org/gnome/shell/ui/components/networkAgent.js:715 wrapper@resource:///org/gnome/gjs/modules/lang.js:169 https://bugzilla.gnome.org/show_bug.cgi?id=760999 --- src/shell-network-agent.c | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/src/shell-network-agent.c b/src/shell-network-agent.c index c6f4b79c5..8e8c54845 100644 --- a/src/shell-network-agent.c +++ b/src/shell-network-agent.c @@ -366,8 +366,6 @@ shell_network_agent_get_secrets (NMSecretAgent *agent, { ShellNetworkAgent *self = SHELL_NETWORK_AGENT (agent); ShellAgentRequest *request; - NMSettingConnection *setting_connection; - const char *connection_type; GHashTable *attributes; char *request_id; @@ -381,9 +379,6 @@ shell_network_agent_get_secrets (NMSecretAgent *agent, shell_agent_request_cancel (request); } - setting_connection = nm_connection_get_setting_connection (connection); - connection_type = nm_setting_connection_get_connection_type (setting_connection); - request = g_slice_new (ShellAgentRequest); request->self = g_object_ref (self); request->cancellable = g_cancellable_new (); @@ -393,7 +388,7 @@ shell_network_agent_get_secrets (NMSecretAgent *agent, request->flags = flags; request->callback = callback; request->callback_data = callback_data; - request->is_vpn = !strcmp(connection_type, NM_SETTING_VPN_SETTING_NAME); + request->is_vpn = !strcmp(setting_name, NM_SETTING_VPN_SETTING_NAME); request->entries = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, gvalue_destroy_notify); if (request->is_vpn)