1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
|
/* SPDX-License-Identifier: GPL-2.0-or-later */
/*
* Copyright (C) 2015 Red Hat, Inc.
*/
#ifndef __NM_AUDIT_MANAGER_H__
#define __NM_AUDIT_MANAGER_H__
#include "nm-connection.h"
#include "devices/nm-device.h"
#include "nm-types.h"
#define NM_TYPE_AUDIT_MANAGER (nm_audit_manager_get_type())
#define NM_AUDIT_MANAGER(obj) \
(G_TYPE_CHECK_INSTANCE_CAST((obj), NM_TYPE_AUDIT_MANAGER, NMAuditManager))
#define NM_AUDIT_MANAGER_CLASS(klass) \
(G_TYPE_CHECK_CLASS_CAST((klass), NM_TYPE_AUDIT_MANAGER, NMAuditManagerClass))
#define NM_IS_AUDIT_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), NM_TYPE_AUDIT_MANAGER))
#define NM_IS_AUDIT_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), NM_TYPE_AUDIT_MANAGER))
#define NM_AUDIT_MANAGER_GET_CLASS(obj) \
(G_TYPE_INSTANCE_GET_CLASS((obj), NM_TYPE_AUDIT_MANAGER, NMAuditManagerClass))
typedef struct _NMAuditManagerClass NMAuditManagerClass;
#define NM_AUDIT_OP_CONN_ADD "connection-add"
#define NM_AUDIT_OP_CONN_DELETE "connection-delete"
#define NM_AUDIT_OP_CONN_UPDATE "connection-update"
#define NM_AUDIT_OP_CONN_ACTIVATE "connection-activate"
#define NM_AUDIT_OP_CONN_ADD_ACTIVATE "connection-add-activate"
#define NM_AUDIT_OP_CONN_DEACTIVATE "connection-deactivate"
#define NM_AUDIT_OP_CONN_CLEAR_SECRETS "connection-clear-secrets"
#define NM_AUDIT_OP_CONNS_RELOAD "connections-reload"
#define NM_AUDIT_OP_CONNS_LOAD "connections-load"
#define NM_AUDIT_OP_RELOAD "reload"
#define NM_AUDIT_OP_SLEEP_CONTROL "sleep-control"
#define NM_AUDIT_OP_NET_CONTROL "networking-control"
#define NM_AUDIT_OP_RADIO_CONTROL "radio-control"
#define NM_AUDIT_OP_STATISTICS "statistics"
#define NM_AUDIT_OP_HOSTNAME_SAVE "hostname-save"
#define NM_AUDIT_OP_DEVICE_AUTOCONNECT "device-autoconnect"
#define NM_AUDIT_OP_DEVICE_DISCONNECT "device-disconnect"
#define NM_AUDIT_OP_DEVICE_DELETE "device-delete"
#define NM_AUDIT_OP_DEVICE_MANAGED "device-managed"
#define NM_AUDIT_OP_DEVICE_REAPPLY "device-reapply"
#define NM_AUDIT_OP_CHECKPOINT_CREATE "checkpoint-create"
#define NM_AUDIT_OP_CHECKPOINT_ROLLBACK "checkpoint-rollback"
#define NM_AUDIT_OP_CHECKPOINT_DESTROY "checkpoint-destroy"
#define NM_AUDIT_OP_CHECKPOINT_ADJUST_ROLLBACK_TIMEOUT "checkpoint-adjust-rollback-timeout"
GType nm_audit_manager_get_type(void);
NMAuditManager *nm_audit_manager_get(void);
gboolean nm_audit_manager_audit_enabled(NMAuditManager *self);
#define nm_audit_log_connection_op(op, connection, result, args, subject_context, reason) \
G_STMT_START \
{ \
NMAuditManager *_audit = nm_audit_manager_get(); \
\
if (nm_audit_manager_audit_enabled(_audit)) { \
_nm_audit_manager_log_connection_op(_audit, \
__FILE__, \
__LINE__, \
G_STRFUNC, \
(op), \
(connection), \
(result), \
(args), \
(subject_context), \
(reason)); \
} \
} \
G_STMT_END
#define nm_audit_log_control_op(op, arg, result, subject_context, reason) \
G_STMT_START \
{ \
NMAuditManager *_audit = nm_audit_manager_get(); \
\
if (nm_audit_manager_audit_enabled(_audit)) { \
_nm_audit_manager_log_generic_op(_audit, \
__FILE__, \
__LINE__, \
G_STRFUNC, \
(op), \
(arg), \
(result), \
(subject_context), \
(reason)); \
} \
} \
G_STMT_END
#define nm_audit_log_device_op(op, device, result, args, subject_context, reason) \
G_STMT_START \
{ \
NMAuditManager *_audit = nm_audit_manager_get(); \
\
if (nm_audit_manager_audit_enabled(_audit)) { \
_nm_audit_manager_log_device_op(_audit, \
__FILE__, \
__LINE__, \
G_STRFUNC, \
(op), \
(device), \
(result), \
(args), \
(subject_context), \
(reason)); \
} \
} \
G_STMT_END
#define nm_audit_log_checkpoint_op(op, arg, result, subject_context, reason) \
G_STMT_START \
{ \
NMAuditManager *_audit = nm_audit_manager_get(); \
\
if (nm_audit_manager_audit_enabled(_audit)) { \
_nm_audit_manager_log_generic_op(_audit, \
__FILE__, \
__LINE__, \
G_STRFUNC, \
(op), \
(arg), \
(result), \
(subject_context), \
(reason)); \
} \
} \
G_STMT_END
void _nm_audit_manager_log_connection_op(NMAuditManager *self,
const char *file,
guint line,
const char *func,
const char *op,
NMSettingsConnection *connection,
gboolean result,
const char *args,
gpointer subject_context,
const char *reason);
void _nm_audit_manager_log_generic_op(NMAuditManager *self,
const char *file,
guint line,
const char *func,
const char *op,
const char *arg,
gboolean result,
gpointer subject_context,
const char *reason);
void _nm_audit_manager_log_device_op(NMAuditManager *self,
const char *file,
guint line,
const char *func,
const char *op,
NMDevice *device,
gboolean result,
const char *args,
gpointer subject_context,
const char *reason);
#endif /* __NM_AUDIT_MANAGER_H__ */
|