summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/settings/nm-agent-manager.c13
-rw-r--r--src/settings/nm-agent-manager.h3
2 files changed, 13 insertions, 3 deletions
diff --git a/src/settings/nm-agent-manager.c b/src/settings/nm-agent-manager.c
index 2d99a6e06f..c6d19734bf 100644
--- a/src/settings/nm-agent-manager.c
+++ b/src/settings/nm-agent-manager.c
@@ -815,8 +815,17 @@ get_done_cb (NMSecretAgent *agent,
req, parent->detail, req->setting_name,
error ? error->code : -1,
(error && error->message) ? error->message : "(unknown)");
- /* Try the next agent */
- request_next_agent (parent);
+
+ if (!dbus_g_error_has_name (error, NM_DBUS_INTERFACE_SECRET_AGENT ".UserCanceled")) {
+ error = g_error_new_literal (NM_AGENT_MANAGER_ERROR,
+ NM_AGENT_MANAGER_ERROR_USER_CANCELED,
+ "User canceled the secrets request.");
+ req_complete_error (parent, error);
+ g_error_free (error);
+ } else {
+ /* Try the next agent */
+ request_next_agent (parent);
+ }
return;
}
diff --git a/src/settings/nm-agent-manager.h b/src/settings/nm-agent-manager.h
index d6db0df2f3..5fdd66ef6f 100644
--- a/src/settings/nm-agent-manager.h
+++ b/src/settings/nm-agent-manager.h
@@ -41,7 +41,8 @@ typedef enum {
NM_AGENT_MANAGER_ERROR_INVALID_IDENTIFIER, /*< nick=InvalidIdentifier >*/
NM_AGENT_MANAGER_ERROR_NOT_REGISTERED, /*< nick=NotRegistered >*/
NM_AGENT_MANAGER_ERROR_INTERNAL_ERROR, /*< nick=InternalError >*/
- NM_AGENT_MANAGER_ERROR_NO_SECRETS /*< nick=NoSecrets >*/
+ NM_AGENT_MANAGER_ERROR_NO_SECRETS, /*< nick=NoSecrets >*/
+ NM_AGENT_MANAGER_ERROR_USER_CANCELED /*< nick=UserCanceled >*/
} NMAgentManagerError;
typedef struct {