diff --git a/src/settings/nm-agent-manager.c b/src/settings/nm-agent-manager.c index 7d3960abdd..5ccbdc6723 100644 --- a/src/settings/nm-agent-manager.c +++ b/src/settings/nm-agent-manager.c @@ -1342,6 +1342,24 @@ nm_agent_manager_delete_secrets (NMAgentManager *self, /*************************************************************/ +NMSecretAgent * +nm_agent_manager_get_agent_by_user (NMAgentManager *self, const char *username) +{ + NMAgentManagerPrivate *priv = NM_AGENT_MANAGER_GET_PRIVATE (self); + GHashTableIter iter; + NMSecretAgent *agent; + + g_hash_table_iter_init (&iter, priv->agents); + while (g_hash_table_iter_next (&iter, NULL, (gpointer) &agent)) { + if (g_strcmp0 (nm_secret_agent_get_owner_username (agent), username) == 0) + return agent; + } + + return NULL; +} + +/*************************************************************/ + static void name_owner_changed_cb (NMDBusManager *dbus_mgr, const char *name, diff --git a/src/settings/nm-agent-manager.h b/src/settings/nm-agent-manager.h index 287413afce..e49f579d74 100644 --- a/src/settings/nm-agent-manager.h +++ b/src/settings/nm-agent-manager.h @@ -89,4 +89,7 @@ guint32 nm_agent_manager_delete_secrets (NMAgentManager *manager, gboolean filter_by_uid, gulong uid_filter); +NMSecretAgent *nm_agent_manager_get_agent_by_user (NMAgentManager *manager, + const char *username); + #endif /* NM_AGENT_MANAGER_H */