diff options
Diffstat (limited to 'src/settings/nm-agent-manager.c')
-rw-r--r-- | src/settings/nm-agent-manager.c | 42 |
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)) |