for (;;) {
struct stat st;
- struct dirent buf, *de;
+ struct dirent *de;
+ union dirent_storage buf;
- r = readdir_r(d, &buf, &de);
+ r = readdir_r(d, &buf.de, &de);
if (r != 0)
break;
log_error("Failed to create user journal: %s", strerror(-r));
else {
hashmap_replace(s->user_journals, k, f);
- server_fix_perms(s, s->system_journal, PTR_TO_UINT32(k));
+ server_fix_perms(s, f, PTR_TO_UINT32(k));
}
}
}
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();
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));
}
}
- 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;
log_set_target(LOG_TARGET_SAFE);
log_set_facility(LOG_SYSLOG);
- log_set_max_level(LOG_DEBUG);
log_parse_environment();
log_open();
}
server_maybe_append_tags(&server);
+ server_maybe_warn_forward_syslog_missed(&server);
}
log_debug("systemd-journald stopped as pid %lu", (unsigned long) getpid());