[systemd-commits] src/manager.c

Lennart Poettering lennart at kemper.freedesktop.org
Mon Mar 14 09:48:57 PDT 2011


 src/manager.c |   15 +++++++++++++--
 1 file changed, 13 insertions(+), 2 deletions(-)

New commits:
commit 391ade86065cb56e9f4bec0c21f2e22ec7880369
Author: Lennart Poettering <lennart at poettering.net>
Date:   Mon Mar 14 17:48:34 2011 +0100

    audit: give up sending auditing messages when it failed due to EPERM

diff --git a/src/manager.c b/src/manager.c
index 1ab4c94..cee4344 100644
--- a/src/manager.c
+++ b/src/manager.c
@@ -2448,8 +2448,19 @@ void manager_send_unit_audit(Manager *m, Unit *u, int type, bool success) {
                 return;
         }
 
-        if (audit_log_user_comm_message(m->audit_fd, type, "", p, NULL, NULL, NULL, success) < 0)
-                log_error("Failed to send audit message: %m");
+        if (audit_log_user_comm_message(m->audit_fd, type, "", p, NULL, NULL, NULL, success) < 0) {
+                log_warning("Failed to send audit message: %m");
+
+                if (errno == EPERM) {
+                        /* We aren't allowed to send audit messages?
+                         * Then let's not retry again, to avoid
+                         * spamming the user with the same and same
+                         * messages over and over. */
+
+                        audit_close(m->audit_fd);
+                        m->audit_fd = -1;
+                }
+        }
 
         free(p);
 #endif



More information about the systemd-commits mailing list