diff options
Diffstat (limited to 'src/nm-audit-manager.c')
| -rw-r--r-- | src/nm-audit-manager.c | 71 |
1 files changed, 43 insertions, 28 deletions
diff --git a/src/nm-audit-manager.c b/src/nm-audit-manager.c index 9e884096..eeb9d2ba 100644 --- a/src/nm-audit-manager.c +++ b/src/nm-audit-manager.c @@ -30,46 +30,65 @@ #include "nm-auth-subject.h" #include "nm-config.h" -#include "nm-settings-connection.h" +#include "settings/nm-settings-connection.h" -#define AUDIT_LOG_LEVEL LOGL_INFO - -#define _NMLOG_PREFIX_NAME "audit" -#define _NMLOG(level, domain, ...) \ - G_STMT_START { \ - nm_log ((level), (domain), \ - "%s" _NM_UTILS_MACRO_FIRST (__VA_ARGS__), \ - _NMLOG_PREFIX_NAME": " \ - _NM_UTILS_MACRO_REST (__VA_ARGS__)); \ - } G_STMT_END +/*****************************************************************************/ typedef enum { - BACKEND_LOG = (1 << 0), - BACKEND_AUDITD = (1 << 1), - _BACKEND_LAST, - BACKEND_ALL = ((_BACKEND_LAST - 1) << 1) - 1, + BACKEND_LOG = (1 << 0), + BACKEND_AUDITD = (1 << 1), + _BACKEND_LAST, + BACKEND_ALL = ((_BACKEND_LAST - 1) << 1) - 1, } AuditBackend; typedef struct { - const char *name; - GValue value; - gboolean need_encoding; - AuditBackend backends; + const char *name; + GValue value; + gboolean need_encoding; + AuditBackend backends; } AuditField; -#if HAVE_LIBAUDIT +/*****************************************************************************/ + typedef struct { NMConfig *config; int auditd_fd; } NMAuditManagerPrivate; -#define NM_AUDIT_MANAGER_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_AUDIT_MANAGER, NMAuditManagerPrivate)) +struct _NMAuditManager { + GObject parent; +#if HAVE_LIBAUDIT + NMAuditManagerPrivate _priv; #endif +}; + +struct _NMAuditManagerClass { + GObjectClass parent; +}; G_DEFINE_TYPE (NMAuditManager, nm_audit_manager, G_TYPE_OBJECT) +#define NM_AUDIT_MANAGER_GET_PRIVATE(self) _NM_GET_PRIVATE (self, NMAuditManager, NM_IS_AUDIT_MANAGER) + +/*****************************************************************************/ + +#define AUDIT_LOG_LEVEL LOGL_INFO + +#define _NMLOG_PREFIX_NAME "audit" +#define _NMLOG(level, domain, ...) \ + G_STMT_START { \ + nm_log ((level), (domain), \ + "%s" _NM_UTILS_MACRO_FIRST (__VA_ARGS__), \ + _NMLOG_PREFIX_NAME": " \ + _NM_UTILS_MACRO_REST (__VA_ARGS__)); \ + } G_STMT_END + +/*****************************************************************************/ + NM_DEFINE_SINGLETON_GETTER (NMAuditManager, nm_audit_manager_get, NM_TYPE_AUDIT_MANAGER); +/*****************************************************************************/ + static void _audit_field_init_string (AuditField *field, const char *name, const char *str, gboolean need_encoding, AuditBackend backends) @@ -317,7 +336,7 @@ init_auditd (NMAuditManager *self) if (nm_config_data_get_value_boolean (data, NM_CONFIG_KEYFILE_GROUP_LOGGING, NM_CONFIG_KEYFILE_KEY_AUDIT, - NM_CONFIG_DEFAULT_LOGGING_AUDIT)) { + NM_CONFIG_DEFAULT_LOGGING_AUDIT_BOOL)) { if (priv->auditd_fd < 0) { priv->auditd_fd = audit_open (); if (priv->auditd_fd < 0) @@ -346,6 +365,8 @@ config_changed_cb (NMConfig *config, } #endif +/*****************************************************************************/ + static void nm_audit_manager_init (NMAuditManager *self) { @@ -389,11 +410,5 @@ nm_audit_manager_class_init (NMAuditManagerClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS (klass); -#if HAVE_LIBAUDIT - g_type_class_add_private (klass, sizeof (NMAuditManagerPrivate)); -#endif - - /* virtual methods */ object_class->dispose = dispose; } - |