libnm-glib: don't fail creating connection in NMSecretAgent
authorThomas Haller <thaller@redhat.com>
Sat, 26 Mar 2016 12:18:30 +0000 (13:18 +0100)
committerThomas Haller <thaller@redhat.com>
Tue, 29 Mar 2016 09:56:27 +0000 (11:56 +0200)
The connection should be created best-effort. If the connection doesn't
validate, the connection request still can be answered by the agent.

libnm-glib/nm-secret-agent.c

index 0a86245..0329046 100644 (file)
@@ -27,6 +27,7 @@
 #include "nm-secret-agent.h"
 #include "nm-glib-enum-types.h"
 #include "nm-dbus-helpers-private.h"
+#include "nm-setting-private.h"
 
 static void impl_secret_agent_get_secrets (NMSecretAgent *self,
                                            GHashTable *connection_hash,
@@ -302,7 +303,8 @@ verify_request (NMSecretAgent *self,
                 GError **error)
 {
        NMConnection *connection = NULL;
-       GError *local = NULL;
+
+       g_return_val_if_fail (out_connection, FALSE);
 
        if (!verify_sender (self, context, error))
                return FALSE;
@@ -321,21 +323,11 @@ verify_request (NMSecretAgent *self,
        }
 
        /* Make sure the given connection is valid */
-       g_assert (out_connection);
-       connection = nm_connection_new_from_hash (connection_hash, &local);
-       if (connection) {
-               nm_connection_set_path (connection, connection_path);
-               *out_connection = connection;
-       } else {
-               g_set_error (error,
-                            NM_SECRET_AGENT_ERROR,
-                            NM_SECRET_AGENT_ERROR_INVALID_CONNECTION,
-                            "Invalid connection: %s",
-                            local->message);
-               g_clear_error (&local);
-       }
+       connection = _nm_connection_new_from_hash (connection_hash);
+       nm_connection_set_path (connection, connection_path);
+       *out_connection = connection;
 
-       return !!connection;
+       return TRUE;
 }
 
 static void