9fc0f6
From d57b2e82e42d68555c92da2b19e07dbfdd74ab12 Mon Sep 17 00:00:00 2001
9fc0f6
From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek@in.waw.pl>
9fc0f6
Date: Tue, 3 Dec 2013 08:07:32 -0500
9fc0f6
Subject: [PATCH] journal: fail silently in sd_j_sendv() if journal is
9fc0f6
 unavailable
9fc0f6
9fc0f6
"syslog(3) and sd_journal_print() may largely be used interchangeably
9fc0f6
functionality-wise" according to sd_journal_print(3). This socket
9fc0f6
should be always available except in rare circumstatances, and we
9fc0f6
don't random applications to fail on logging, so let's do what syslog
9fc0f6
did. The alternative of forcing all callers to do error handling for
9fc0f6
this rare case doesn't really have any benefits, since if they can't
9fc0f6
log there isn't much they can do anyway.
9fc0f6
9fc0f6
https://bugzilla.redhat.com/show_bug.cgi?id=1023041
9fc0f6
---
9fc0f6
 src/journal/journal-send.c | 4 ++++
9fc0f6
 1 file changed, 4 insertions(+)
9fc0f6
9fc0f6
diff --git a/src/journal/journal-send.c b/src/journal/journal-send.c
9fc0f6
index d00e26f..d99ff0c 100644
9fc0f6
--- a/src/journal/journal-send.c
9fc0f6
+++ b/src/journal/journal-send.c
9fc0f6
@@ -305,6 +305,10 @@ _public_ int sd_journal_sendv(const struct iovec *iov, int n) {
9fc0f6
         if (k >= 0)
9fc0f6
                 return 0;
9fc0f6
 
9fc0f6
+        /* Fail silently if the journal is not available */
9fc0f6
+        if (errno == ENOENT)
9fc0f6
+                return 0;
9fc0f6
+
9fc0f6
         if (errno != EMSGSIZE && errno != ENOBUFS)
9fc0f6
                 return -errno;
9fc0f6