summaryrefslogtreecommitdiff
path: root/src/settings/nm-agent-manager.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/settings/nm-agent-manager.c')
-rw-r--r--src/settings/nm-agent-manager.c42
1 files changed, 23 insertions, 19 deletions
diff --git a/src/settings/nm-agent-manager.c b/src/settings/nm-agent-manager.c
index 8685f3b21f..c3abaac25c 100644
--- a/src/settings/nm-agent-manager.c
+++ b/src/settings/nm-agent-manager.c
@@ -29,7 +29,6 @@
#include "nm-secret-agent.h"
#include "nm-auth-utils.h"
#include "nm-setting-vpn.h"
-#include "nm-setting-connection.h"
#include "nm-enum-types.h"
#include "nm-auth-manager.h"
#include "nm-bus-manager.h"
@@ -455,6 +454,7 @@ struct _NMAgentManagerCallId {
union {
struct {
+ char *path;
NMConnection *connection;
NMAuthChain *chain;
@@ -474,8 +474,6 @@ struct _NMAgentManagerCallId {
NMAgentSecretsResultFunc callback;
gpointer callback_data;
- gpointer other_data2;
- gpointer other_data3;
} get;
};
} con;
@@ -506,6 +504,7 @@ request_free (Request *req)
case REQUEST_TYPE_CON_SAVE:
case REQUEST_TYPE_CON_DEL:
g_object_unref (req->con.connection);
+ g_free (req->con.path);
if (req->con.chain)
nm_auth_chain_unref (req->con.chain);
if (req->request_type == REQUEST_TYPE_CON_GET) {
@@ -563,9 +562,7 @@ req_complete_release (Request *req,
req->con.get.flags,
error ? NULL : secrets,
error,
- req->con.get.callback_data,
- req->con.get.other_data2,
- req->con.get.other_data3);
+ req->con.get.callback_data);
break;
case REQUEST_TYPE_CON_SAVE:
@@ -943,6 +940,7 @@ _con_get_request_start_proceed (Request *req, gboolean include_system_secrets)
}
req->current_call_id = nm_secret_agent_get_secrets (req->current,
+ req->con.path,
tmp,
req->con.get.setting_name,
(const char **) req->con.get.hints,
@@ -1157,6 +1155,7 @@ _con_get_try_complete_early (Request *req)
/**
* nm_agent_manager_get_secrets:
* @self:
+ * @path:
* @connection:
* @subject:
* @existing_secrets:
@@ -1164,8 +1163,6 @@ _con_get_try_complete_early (Request *req)
* @hints:
* @callback:
* @callback_data:
- * @other_data2:
- * @other_data3:
*
* Requests secrets for a connection.
*
@@ -1179,6 +1176,7 @@ _con_get_try_complete_early (Request *req)
*/
NMAgentManagerCallId
nm_agent_manager_get_secrets (NMAgentManager *self,
+ const char *path,
NMConnection *connection,
NMAuthSubject *subject,
GVariant *existing_secrets,
@@ -1186,20 +1184,19 @@ nm_agent_manager_get_secrets (NMAgentManager *self,
NMSecretAgentGetSecretsFlags flags,
const char **hints,
NMAgentSecretsResultFunc callback,
- gpointer callback_data,
- gpointer other_data2,
- gpointer other_data3)
+ gpointer callback_data)
{
NMAgentManagerPrivate *priv = NM_AGENT_MANAGER_GET_PRIVATE (self);
Request *req;
- g_return_val_if_fail (self != NULL, 0);
- g_return_val_if_fail (NM_IS_CONNECTION (connection), 0);
- g_return_val_if_fail (callback != NULL, 0);
+ g_return_val_if_fail (self != NULL, NULL);
+ g_return_val_if_fail (path && *path, NULL);
+ g_return_val_if_fail (NM_IS_CONNECTION (connection), NULL);
+ g_return_val_if_fail (callback != NULL, NULL);
nm_log_dbg (LOGD_SETTINGS,
"Secrets requested for connection %s (%s/%s)",
- nm_connection_get_path (connection),
+ path,
nm_connection_get_id (connection),
setting_name);
@@ -1213,6 +1210,7 @@ nm_agent_manager_get_secrets (NMAgentManager *self,
nm_connection_get_id (connection),
subject);
+ req->con.path = g_strdup (path);
req->con.connection = g_object_ref (connection);
if (existing_secrets)
req->con.get.existing_secrets = g_variant_ref (existing_secrets);
@@ -1221,8 +1219,6 @@ nm_agent_manager_get_secrets (NMAgentManager *self,
req->con.get.flags = flags;
req->con.get.callback = callback;
req->con.get.callback_data = callback_data;
- req->con.get.other_data2 = other_data2;
- req->con.get.other_data3 = other_data3;
if (!g_hash_table_add (priv->requests, req))
g_assert_not_reached ();
@@ -1296,6 +1292,7 @@ static void
_con_save_request_start (Request *req)
{
req->current_call_id = nm_secret_agent_save_secrets (req->current,
+ req->con.path,
req->con.connection,
_con_save_request_done,
req);
@@ -1307,6 +1304,7 @@ _con_save_request_start (Request *req)
void
nm_agent_manager_save_secrets (NMAgentManager *self,
+ const char *path,
NMConnection *connection,
NMAuthSubject *subject)
{
@@ -1314,17 +1312,19 @@ nm_agent_manager_save_secrets (NMAgentManager *self,
Request *req;
g_return_if_fail (self);
+ g_return_if_fail (path && *path);
g_return_if_fail (NM_IS_CONNECTION (connection));
nm_log_dbg (LOGD_SETTINGS,
"Saving secrets for connection %s (%s)",
- nm_connection_get_path (connection),
+ path,
nm_connection_get_id (connection));
req = request_new (self,
REQUEST_TYPE_CON_SAVE,
nm_connection_get_id (connection),
subject);
+ req->con.path = g_strdup (path);
req->con.connection = g_object_ref (connection);
if (!g_hash_table_add (priv->requests, req))
g_assert_not_reached ();
@@ -1378,6 +1378,7 @@ static void
_con_del_request_start (Request *req)
{
req->current_call_id = nm_secret_agent_delete_secrets (req->current,
+ req->con.path,
req->con.connection,
_con_del_request_done,
req);
@@ -1389,6 +1390,7 @@ _con_del_request_start (Request *req)
void
nm_agent_manager_delete_secrets (NMAgentManager *self,
+ const char *path,
NMConnection *connection)
{
NMAgentManagerPrivate *priv = NM_AGENT_MANAGER_GET_PRIVATE (self);
@@ -1396,11 +1398,12 @@ nm_agent_manager_delete_secrets (NMAgentManager *self,
Request *req;
g_return_if_fail (self != NULL);
+ g_return_if_fail (path && *path);
g_return_if_fail (NM_IS_CONNECTION (connection));
nm_log_dbg (LOGD_SETTINGS,
"Deleting secrets for connection %s (%s)",
- nm_connection_get_path (connection),
+ path,
nm_connection_get_id (connection));
subject = nm_auth_subject_new_internal ();
@@ -1408,6 +1411,7 @@ nm_agent_manager_delete_secrets (NMAgentManager *self,
REQUEST_TYPE_CON_DEL,
nm_connection_get_id (connection),
subject);
+ req->con.path = g_strdup (path);
req->con.connection = g_object_ref (connection);
g_object_unref (subject);
if (!g_hash_table_add (priv->requests, req))