diff options
Diffstat (limited to 'src/settings/nm-secret-agent.c')
| -rw-r--r-- | src/settings/nm-secret-agent.c | 104 |
1 files changed, 56 insertions, 48 deletions
diff --git a/src/settings/nm-secret-agent.c b/src/settings/nm-secret-agent.c index 8bc88fd4..6ec96a32 100644 --- a/src/settings/nm-secret-agent.c +++ b/src/settings/nm-secret-agent.c @@ -20,43 +20,27 @@ #include "nm-default.h" +#include "nm-secret-agent.h" + #include <sys/types.h> #include <pwd.h> #include "nm-dbus-interface.h" -#include "nm-secret-agent.h" #include "nm-bus-manager.h" #include "nm-auth-subject.h" #include "nm-simple-connection.h" #include "NetworkManagerUtils.h" -#include "nmdbus-secret-agent.h" +#include "introspection/org.freedesktop.NetworkManager.SecretAgent.h" -#define _NMLOG_PREFIX_NAME "secret-agent" -#define _NMLOG_DOMAIN LOGD_AGENTS -#define _NMLOG(level, ...) \ - G_STMT_START { \ - if (nm_logging_enabled ((level), (_NMLOG_DOMAIN))) { \ - char __prefix[32]; \ - \ - if ((self)) \ - g_snprintf (__prefix, sizeof (__prefix), "%s[%p]", ""_NMLOG_PREFIX_NAME"", (self)); \ - else \ - g_strlcpy (__prefix, _NMLOG_PREFIX_NAME, sizeof (__prefix)); \ - _nm_log ((level), (_NMLOG_DOMAIN), 0, \ - "%s: " _NM_UTILS_MACRO_FIRST(__VA_ARGS__), \ - __prefix _NM_UTILS_MACRO_REST(__VA_ARGS__)); \ - } \ - } G_STMT_END - -#define LOG_REQ_FMT "req[%p,%s,%s%s%s%s]" -#define LOG_REQ_ARG(req) (req), (req)->dbus_command, NM_PRINT_FMT_QUOTE_STRING ((req)->path), ((req)->cancellable ? "" : " (cancelled)") +/*****************************************************************************/ -G_DEFINE_TYPE (NMSecretAgent, nm_secret_agent, G_TYPE_OBJECT) +enum { + DISCONNECTED, -#define NM_SECRET_AGENT_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), \ - NM_TYPE_SECRET_AGENT, \ - NMSecretAgentPrivate)) + LAST_SIGNAL +}; +static guint signals[LAST_SIGNAL] = { 0 }; typedef struct { char *description; @@ -77,14 +61,42 @@ typedef struct { GHashTable *requests; } NMSecretAgentPrivate; -enum { - DISCONNECTED, +struct _NMSecretAgent { + GObject parent; + NMSecretAgentPrivate _priv; +}; - LAST_SIGNAL +struct _NMSecretAgentClass { + GObjectClass parent; }; -static guint signals[LAST_SIGNAL] = { 0 }; -/*************************************************************/ +G_DEFINE_TYPE (NMSecretAgent, nm_secret_agent, G_TYPE_OBJECT) + +#define NM_SECRET_AGENT_GET_PRIVATE(self) _NM_GET_PRIVATE (self, NMSecretAgent, NM_IS_SECRET_AGENT) + +/*****************************************************************************/ + +#define _NMLOG_PREFIX_NAME "secret-agent" +#define _NMLOG_DOMAIN LOGD_AGENTS +#define _NMLOG(level, ...) \ + G_STMT_START { \ + if (nm_logging_enabled ((level), (_NMLOG_DOMAIN))) { \ + char __prefix[32]; \ + \ + if ((self)) \ + g_snprintf (__prefix, sizeof (__prefix), "%s[%p]", ""_NMLOG_PREFIX_NAME"", (self)); \ + else \ + g_strlcpy (__prefix, _NMLOG_PREFIX_NAME, sizeof (__prefix)); \ + _nm_log ((level), (_NMLOG_DOMAIN), 0, \ + "%s: " _NM_UTILS_MACRO_FIRST(__VA_ARGS__), \ + __prefix _NM_UTILS_MACRO_REST(__VA_ARGS__)); \ + } \ + } G_STMT_END + +#define LOG_REQ_FMT "req[%p,%s,%s%s%s%s]" +#define LOG_REQ_ARG(req) (req), (req)->dbus_command, NM_PRINT_FMT_QUOTE_STRING ((req)->path), ((req)->cancellable ? "" : " (cancelled)") + +/*****************************************************************************/ struct _NMSecretAgentCallId { NMSecretAgent *agent; @@ -153,7 +165,7 @@ request_check_return (Request *r) return TRUE; } -/*************************************************************/ +/*****************************************************************************/ static char * _create_description (const char *dbus_owner, const char *identifier, gulong uid) @@ -307,7 +319,7 @@ nm_secret_agent_has_permission (NMSecretAgent *agent, const char *permission) return FALSE; } -/*************************************************************/ +/*****************************************************************************/ static void get_callback (GObject *proxy, @@ -378,7 +390,7 @@ nm_secret_agent_get_secrets (NMSecretAgent *self, return r; } -/*************************************************************/ +/*****************************************************************************/ static void cancel_done (GObject *proxy, GAsyncResult *result, gpointer user_data) @@ -468,7 +480,7 @@ nm_secret_agent_cancel_secrets (NMSecretAgent *self, NMSecretAgentCallId call_id do_cancel_secrets (self, r, FALSE); } -/*************************************************************/ +/*****************************************************************************/ static void agent_save_cb (GObject *proxy, @@ -521,7 +533,7 @@ nm_secret_agent_save_secrets (NMSecretAgent *self, return r; } -/*************************************************************/ +/*****************************************************************************/ static void agent_delete_cb (GObject *proxy, @@ -574,7 +586,7 @@ nm_secret_agent_delete_secrets (NMSecretAgent *self, return r; } -/*************************************************************/ +/*****************************************************************************/ static void _on_disconnected_cleanup (NMSecretAgentPrivate *priv) @@ -640,7 +652,7 @@ _on_disconnected_name_owner_changed (GDBusConnection *connection, } } -/*************************************************************/ +/*****************************************************************************/ NMSecretAgent * nm_secret_agent_new (GDBusMethodInvocation *context, @@ -783,20 +795,16 @@ nm_secret_agent_class_init (NMSecretAgentClass *config_class) { GObjectClass *object_class = G_OBJECT_CLASS (config_class); - g_type_class_add_private (config_class, sizeof (NMSecretAgentPrivate)); - - /* virtual methods */ object_class->dispose = dispose; object_class->finalize = finalize; - /* signals */ signals[DISCONNECTED] = - g_signal_new (NM_SECRET_AGENT_DISCONNECTED, - G_OBJECT_CLASS_TYPE (object_class), - G_SIGNAL_RUN_FIRST, - G_STRUCT_OFFSET (NMSecretAgentClass, disconnected), - NULL, NULL, - g_cclosure_marshal_VOID__VOID, - G_TYPE_NONE, 0); + g_signal_new (NM_SECRET_AGENT_DISCONNECTED, + G_OBJECT_CLASS_TYPE (object_class), + G_SIGNAL_RUN_FIRST, + 0, + NULL, NULL, + g_cclosure_marshal_VOID__VOID, + G_TYPE_NONE, 0); } |