From c2893c4b346b3fe33a3f983a83818e91affa9631 Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Fri, 21 Sep 2012 22:50:26 +0200 Subject: [PATCH] journald: log how big the journal files may grow --- src/journal/journald.c | 24 ++++++++++++++++++------ src/systemd/sd-id128.h | 2 ++ 2 files changed, 20 insertions(+), 6 deletions(-) diff --git a/src/journal/journald.c b/src/journal/journald.c index 164e1087d..3267fffed 100644 --- a/src/journal/journald.c +++ b/src/journal/journald.c @@ -714,9 +714,11 @@ void server_driver_message(Server *s, sd_id128_t message_id, const char *format, char_array_0(buffer); IOVEC_SET_STRING(iovec[n++], buffer); - snprintf(mid, sizeof(mid), "MESSAGE_ID=" SD_ID128_FORMAT_STR, SD_ID128_FORMAT_VAL(message_id)); - char_array_0(mid); - IOVEC_SET_STRING(iovec[n++], mid); + if (!sd_id128_equal(message_id, SD_ID128_NULL)) { + snprintf(mid, sizeof(mid), "MESSAGE_ID=" SD_ID128_FORMAT_STR, SD_ID128_FORMAT_VAL(message_id)); + char_array_0(mid); + IOVEC_SET_STRING(iovec[n++], mid); + } zero(ucred); ucred.pid = getpid(); @@ -827,9 +829,14 @@ static int system_journal_open(Server *s) { r = journal_file_open_reliably(fn, O_RDWR|O_CREAT, 0640, s->compress, s->seal, &s->system_metrics, s->mmap, NULL, &s->system_journal); free(fn); - if (r >= 0) + if (r >= 0) { + char fb[FORMAT_BYTES_MAX]; + server_fix_perms(s, s->system_journal, 0); - else if (r < 0) { + server_driver_message(s, SD_ID128_NULL, "Allowing system journal files to grow to %s.", + format_bytes(fb, sizeof(fb), s->system_metrics.max_use)); + + } else if (r < 0) { if (r != -ENOENT && r != -EROFS) log_warning("Failed to open system journal: %s", strerror(-r)); @@ -876,8 +883,13 @@ static int system_journal_open(Server *s) { } } - if (s->runtime_journal) + if (s->runtime_journal) { + char fb[FORMAT_BYTES_MAX]; + server_fix_perms(s, s->runtime_journal, 0); + server_driver_message(s, SD_ID128_NULL, "Allowing runtime journal files to grow to %s.", + format_bytes(fb, sizeof(fb), s->runtime_metrics.max_use)); + } } return r; diff --git a/src/systemd/sd-id128.h b/src/systemd/sd-id128.h index 126d83ce8..05521ae4b 100644 --- a/src/systemd/sd-id128.h +++ b/src/systemd/sd-id128.h @@ -64,6 +64,8 @@ static inline int sd_id128_equal(sd_id128_t a, sd_id128_t b) { return memcmp(&a, &b, 16) == 0; } +#define SD_ID128_NULL ((sd_id128_t) { .qwords = { 0, 0 }}) + #ifdef __cplusplus } #endif -- 2.30.2