summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Haller <thaller@redhat.com>2019-07-15 09:56:44 +0200
committerThomas Haller <thaller@redhat.com>2019-07-16 12:35:36 +0200
commit779555bc648e5e2122f84807314bb45a6d99f8bc (patch)
tree5f84794c8aa186ea2cfa84d1b50734c9cbe145f9
parentb52b51e3dbdab479d336490f4c04ca843f91b9ba (diff)
downloadNetworkManager-779555bc648e5e2122f84807314bb45a6d99f8bc.tar.gz
settings: add audit-logging for connection load and reload
-rw-r--r--src/nm-audit-manager.c25
-rw-r--r--src/nm-audit-manager.h3
-rw-r--r--src/settings/nm-settings.c10
3 files changed, 32 insertions, 6 deletions
diff --git a/src/nm-audit-manager.c b/src/nm-audit-manager.c
index b0fe1ed268..fe7645f88f 100644
--- a/src/nm-audit-manager.c
+++ b/src/nm-audit-manager.c
@@ -184,9 +184,15 @@ nm_audit_log (NMAuditManager *self, GPtrArray *fields, const char *file,
}
static void
-_audit_log_helper (NMAuditManager *self, GPtrArray *fields, const char *file,
- guint line, const char *func, const char *op, gboolean result,
- gpointer subject_context, const char *reason)
+_audit_log_helper (NMAuditManager *self,
+ GPtrArray *fields,
+ const char *file,
+ guint line,
+ const char *func,
+ const char *op,
+ gboolean result,
+ gpointer subject_context,
+ const char *reason)
{
AuditField op_field = { }, pid_field = { }, uid_field = { };
AuditField result_field = { }, reason_field = { };
@@ -246,9 +252,16 @@ nm_audit_manager_audit_enabled (NMAuditManager *self)
}
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)
+_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)
{
gs_unref_ptrarray GPtrArray *fields = NULL;
AuditField uuid_field = { }, name_field = { }, args_field = { };
diff --git a/src/nm-audit-manager.h b/src/nm-audit-manager.h
index 8c38e8024e..b867822794 100644
--- a/src/nm-audit-manager.h
+++ b/src/nm-audit-manager.h
@@ -41,6 +41,9 @@ typedef struct _NMAuditManagerClass NMAuditManagerClass;
#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"
diff --git a/src/settings/nm-settings.c b/src/settings/nm-settings.c
index 47866a442a..7bf47a5757 100644
--- a/src/settings/nm-settings.c
+++ b/src/settings/nm-settings.c
@@ -888,6 +888,7 @@ impl_settings_load_connections (NMDBusObject *obj,
NMSettingsPrivate *priv = NM_SETTINGS_GET_PRIVATE (self);
gs_unref_ptrarray GPtrArray *failures = NULL;
gs_free const char **filenames = NULL;
+ gs_free char *op_result_str = NULL;
g_variant_get (parameters, "(^a&s)", &filenames);
@@ -931,6 +932,13 @@ next_filename:
if (failures)
g_ptr_array_add (failures, NULL);
+ nm_audit_log_connection_op (NM_AUDIT_OP_CONNS_LOAD,
+ NULL,
+ !failures,
+ (op_result_str = g_strjoinv (",", (char **) filenames)),
+ invocation,
+ NULL);
+
g_dbus_method_invocation_return_value (invocation,
g_variant_new ("(b^as)",
(gboolean) (!failures),
@@ -969,6 +977,8 @@ impl_settings_reload_connections (NMDBusObject *obj,
nm_settings_plugin_reload_connections (plugin);
}
+ nm_audit_log_connection_op (NM_AUDIT_OP_CONNS_RELOAD, NULL, TRUE, NULL, invocation, NULL);
+
g_dbus_method_invocation_return_value (invocation, g_variant_new ("(b)", TRUE));
}