summaryrefslogtreecommitdiff
path: root/src/journal/journald.c
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2011-10-12 05:29:08 +0200
committerLennart Poettering <lennart@poettering.net>2011-10-12 05:29:08 +0200
commit250d54b5bee6a46fe1c1626211e3a7e238eda628 (patch)
treea65699863bf433344a9499d468a2c1166acd73b4 /src/journal/journald.c
parent69e5d42db09dfb638bc74055c33bb2645f81563d (diff)
journalctl: find journal files in right path
Diffstat (limited to 'src/journal/journald.c')
-rw-r--r--src/journal/journald.c49
1 files changed, 26 insertions, 23 deletions
diff --git a/src/journal/journald.c b/src/journal/journald.c
index b8a9fc3adf..94261f6763 100644
--- a/src/journal/journald.c
+++ b/src/journal/journald.c
@@ -375,7 +375,7 @@ static int system_journal_open(Server *s) {
return r;
/* First try to create the machine path, but not the prefix */
- fn = join("/var/log/journal/", sd_id128_to_string(machine, ids), NULL);
+ fn = strappend("/var/log/journal/", sd_id128_to_string(machine, ids));
if (!fn)
return -ENOMEM;
(void) mkdir(fn, 0755);
@@ -389,35 +389,38 @@ static int system_journal_open(Server *s) {
r = journal_file_open(fn, O_RDWR|O_CREAT, 0640, &s->system_journal);
free(fn);
- if (r >= 0)
+ if (r >= 0) {
fix_perms(s->system_journal, 0);
- else if (r == -ENOENT) {
-
- /* /var didn't work, so try /run, but this time we
- * create the prefix too */
- fn = join("/run/log/journal/", ids, NULL);
- if (!fn)
- return -ENOMEM;
- (void) mkdir_p(fn, 0755);
- free(fn);
-
- /* Then create the runtime journal file */
- fn = join("/run/log/journal/", ids, "/system.journal", NULL);
- if (!fn)
- return -ENOMEM;
- r = journal_file_open(fn, O_RDWR|O_CREAT, 0640, &s->runtime_journal);
- free(fn);
-
- if (r >= 0)
- fix_perms(s->runtime_journal, 0);
+ return r;
}
if (r < 0 && r != -ENOENT) {
- log_error("Failed to open journal: %s", strerror(-r));
+ log_error("Failed to open system journal: %s", strerror(-r));
return r;
}
- return 0;
+ /* /var didn't work, so try /run, but this time we
+ * create the prefix too */
+ fn = strappend("/run/log/journal/", ids);
+ if (!fn)
+ return -ENOMEM;
+ (void) mkdir_p(fn, 0755);
+ free(fn);
+
+ /* Then create the runtime journal file */
+ fn = join("/run/log/journal/", ids, "/system.journal", NULL);
+ if (!fn)
+ return -ENOMEM;
+ r = journal_file_open(fn, O_RDWR|O_CREAT, 0640, &s->runtime_journal);
+ free(fn);
+
+ if (r < 0) {
+ log_error("Failed to open runtime journal: %s", strerror(-r));
+ return r;
+ }
+
+ fix_perms(s->runtime_journal, 0);
+ return r;
}
static int server_init(Server *s) {