diff --git a/clients/common/nm-secret-agent-simple.c b/clients/common/nm-secret-agent-simple.c index 0c90eba36e..550fefa809 100644 --- a/clients/common/nm-secret-agent-simple.c +++ b/clients/common/nm-secret-agent-simple.c @@ -751,10 +751,18 @@ nm_secret_agent_simple_enable (NMSecretAgentSimple *self, const char *path) { NMSecretAgentSimplePrivate *priv = NM_SECRET_AGENT_SIMPLE_GET_PRIVATE (self); GList *requests, *iter; + gs_free char *path_full = NULL; - if (g_strcmp0 (path, priv->path) != 0) { + /* The path is only used to match a request_id with the current + * connection. Since the request_id is "${CONNECTION_PATH}/${SETTING}", + * add a trailing '/' to the path to match the full connection path. + */ + path_full = path ? g_strdup_printf ("%s/", path) : NULL; + + if (g_strcmp0 (path_full, priv->path) != 0) { g_free (priv->path); - priv->path = g_strdup (path); + priv->path = path_full; + path_full = NULL; } if (priv->enabled)