sd-journal: allow SYSTEM and CURRENT_USER flags with sd_j_open_directory[_fd]
authorZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Fri, 12 Aug 2016 02:48:58 +0000 (22:48 -0400)
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Fri, 12 Aug 2016 04:38:03 +0000 (00:38 -0400)
There is no reason not to. This makes journalctl -D ... --system work,
useful for example when viewing files from a deactivated container.

man/sd_journal_open.xml
src/journal/sd-journal.c

index 153af23..74e6702 100644 (file)
 
     <para><function>sd_journal_open_directory()</function> is similar to <function>sd_journal_open()</function> but
     takes an absolute directory path as argument. All journal files in this directory will be opened and interleaved
-    automatically. This call also takes a flags argument. The only flags parameter accepted by this call is
-    <constant>SD_JOURNAL_OS_ROOT</constant>. If specified, the journal files are searched below the usual
-    <filename>/var/log/journal</filename> and <filename>/run/log/journal</filename> relative to the specified path,
-    instead of directly beneath it.</para>
+    automatically. This call also takes a flags argument. The flags parameters accepted by this call are
+    <constant>SD_JOURNAL_OS_ROOT</constant>, <constant>SD_JOURNAL_SYSTEM</constant>, and
+    <constant>SD_JOURNAL_CURRENT_USER</constant>. If <constant>SD_JOURNAL_OS_ROOT</constant> is specified, journal
+    files are searched for below the usual <filename>/var/log/journal</filename> and
+    <filename>/run/log/journal</filename> relative to the specified path, instead of directly beneath it.
+    The other two flags limit which files are opened, the same as for <function>sd_journal_open()</function>.
+    </para>
 
     <para><function>sd_journal_open_directory_fd()</function> is similar to
     <function>sd_journal_open_directory()</function>, but takes a file descriptor referencing a directory in the file
index a9e90c1..082d2dd 100644 (file)
@@ -1815,7 +1815,8 @@ fail:
 }
 
 #define OPEN_DIRECTORY_ALLOWED_FLAGS                    \
-        SD_JOURNAL_OS_ROOT
+        (SD_JOURNAL_OS_ROOT |                           \
+         SD_JOURNAL_SYSTEM | SD_JOURNAL_CURRENT_USER )
 
 _public_ int sd_journal_open_directory(sd_journal **ret, const char *path, int flags) {
         sd_journal *j;
@@ -1873,7 +1874,8 @@ fail:
 }
 
 #define OPEN_DIRECTORY_FD_ALLOWED_FLAGS         \
-        SD_JOURNAL_OS_ROOT
+        (SD_JOURNAL_OS_ROOT |                           \
+         SD_JOURNAL_SYSTEM | SD_JOURNAL_CURRENT_USER )
 
 _public_ int sd_journal_open_directory_fd(sd_journal **ret, int fd, int flags) {
         sd_journal *j;