X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Fjournal%2Fjournald.c;h=8cf8c78274f788a361bb3221de2cd9f2f7347b9d;hb=0d7e32fa0a8e5f21a66c2f5504adabfa40523efc;hp=c29d75c9c4045a22af163f3fbe5a689d87eb30f2;hpb=32fca2d5b746b86bbbbd4f1b57064076cfc2ae4b;p=elogind.git diff --git a/src/journal/journald.c b/src/journal/journald.c index c29d75c9c..8cf8c7827 100644 --- a/src/journal/journald.c +++ b/src/journal/journald.c @@ -393,7 +393,7 @@ static void server_vacuum(Server *s) { if (s->system_journal) { if (asprintf(&p, "/var/log/journal/%s", ids) < 0) { - log_error("Out of memory."); + log_oom(); return; } @@ -405,7 +405,7 @@ static void server_vacuum(Server *s) { if (s->runtime_journal) { if (asprintf(&p, "/run/log/journal/%s", ids) < 0) { - log_error("Out of memory."); + log_oom(); return; } @@ -478,6 +478,10 @@ static void write_to_journal(Server *s, uid_t uid, struct iovec *iovec, unsigned server_rotate(s); server_vacuum(s); vacuumed = true; + + f = find_journal(s, uid); + if (!f) + return; } for (;;) { @@ -717,7 +721,7 @@ static void driver_message(Server *s, sd_id128_t message_id, const char *format, assert(s); assert(format); - IOVEC_SET_STRING(iovec[n++], "PRIORITY=5"); + IOVEC_SET_STRING(iovec[n++], "PRIORITY=6"); IOVEC_SET_STRING(iovec[n++], "_TRANSPORT=driver"); memcpy(buffer, "MESSAGE=", 8); @@ -864,7 +868,8 @@ static void forward_syslog_iovec(Server *s, const struct iovec *iovec, unsigned return; } - log_debug("Failed to forward syslog message: %m"); + if (errno != ENOENT) + log_debug("Failed to forward syslog message: %m"); } static void forward_syslog_raw(Server *s, int priority, const char *buffer, struct ucred *ucred, struct timeval *tv) { @@ -1265,7 +1270,7 @@ static void process_native_message( u = MAX((n+N_IOVEC_META_FIELDS+1) * 2U, 4U); c = realloc(iovec, u * sizeof(struct iovec)); if (!c) { - log_error("Out of memory"); + log_oom(); break; } @@ -1352,7 +1357,7 @@ static void process_native_message( k = malloc((e - p) + 1 + l); if (!k) { - log_error("Out of memory"); + log_oom(); break; } @@ -1445,7 +1450,7 @@ static void process_native_file( p = malloc(st.st_size); if (!p) { - log_error("Out of memory"); + log_oom(); return; } @@ -1537,10 +1542,8 @@ static int stdout_stream_line(StdoutStream *s, char *p) { s->identifier = NULL; else { s->identifier = strdup(p); - if (!s->identifier) { - log_error("Out of memory"); - return -ENOMEM; - } + if (!s->identifier) + return log_oom(); } s->state = STDOUT_STREAM_UNIT_ID; @@ -1552,10 +1555,8 @@ static int stdout_stream_line(StdoutStream *s, char *p) { s->unit_id = NULL; else { s->unit_id = strdup(p); - if (!s->unit_id) { - log_error("Out of memory"); - return -ENOMEM; - } + if (!s->unit_id) + return log_oom(); } } @@ -1756,9 +1757,8 @@ static int stdout_stream_new(Server *s) { stream = new0(StdoutStream, 1); if (!stream) { - log_error("Out of memory."); close_nointr_nofail(fd); - return -ENOMEM; + return log_oom(); } stream->fd = fd; @@ -2142,11 +2142,8 @@ finish: journal_file_close(s->runtime_journal); s->runtime_journal = NULL; - if (r >= 0) { - char path[] = "/run/log/journal/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"; - sd_id128_to_string(machine, path + 17); - rm_rf(path, false, true, false); - } + if (r >= 0) + rm_rf("/run/log/journal", false, true, false); return r; } @@ -2223,6 +2220,8 @@ static int process_event(Server *s, struct epoll_event *ev) { return -errno; } + log_info("Received SIG%s", signal_to_string(sfsi.ssi_signo)); + if (sfsi.ssi_signo == SIGUSR1) { touch("/run/systemd/journal/flushed"); server_flush_to_var(s); @@ -2235,7 +2234,6 @@ static int process_event(Server *s, struct epoll_event *ev) { return 1; } - log_debug("Received SIG%s", signal_to_string(sfsi.ssi_signo)); return 0; } else if (ev->data.fd == s->proc_kmsg_fd) { @@ -2750,10 +2748,8 @@ static int server_init(Server *s) { server_parse_proc_cmdline(s); s->user_journals = hashmap_new(trivial_hash_func, trivial_compare_func); - if (!s->user_journals) { - log_error("Out of memory."); - return -ENOMEM; - } + if (!s->user_journals) + return log_oom(); s->epoll_fd = epoll_create1(EPOLL_CLOEXEC); if (s->epoll_fd < 0) {