From: Lennart Poettering Date: Mon, 14 Mar 2011 16:48:34 +0000 (+0100) Subject: audit: give up sending auditing messages when it failed due to EPERM X-Git-Tag: v21~89 X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=commitdiff_plain;h=391ade86065cb56e9f4bec0c21f2e22ec7880369 audit: give up sending auditing messages when it failed due to EPERM --- diff --git a/src/manager.c b/src/manager.c index 1ab4c94ee..cee434466 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