From: Yu Watanabe Date: Sun, 27 Aug 2017 07:34:53 +0000 (+0900) Subject: journal-remote: show error message if output file name does not end with .journal X-Git-Tag: v235~219^2 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=refs%2Fpull%2F6677%2Fhead;p=thirdparty%2Fsystemd.git journal-remote: show error message if output file name does not end with .journal `journalctl -o export | systemd-journal-remote -o /tmp/dir -` gives the following error messages. ``` Failed to open output journal /tmp/dir: Invalid argument Failed to get writer for source stdin: Invalid argument Failed to create source for fd:0 (stdin): Invalid argument ``` And these are hard to understand what is the problem. This commit makes journal-remote check whether the output file name ends with .journal suffix or not, and if not, output error message. --- diff --git a/src/journal-remote/journal-remote.c b/src/journal-remote/journal-remote.c index 1ed350649cf..7201421d915 100644 --- a/src/journal-remote/journal-remote.c +++ b/src/journal-remote/journal-remote.c @@ -1495,10 +1495,15 @@ static int parse_argv(int argc, char *argv[]) { arg_split_mode = JOURNAL_WRITE_SPLIT_NONE; } - if (arg_split_mode == JOURNAL_WRITE_SPLIT_NONE - && arg_output && is_dir(arg_output, true) > 0) { - log_error("For SplitMode=none, output must be a file."); - return -EINVAL; + if (arg_split_mode == JOURNAL_WRITE_SPLIT_NONE && arg_output) { + if (is_dir(arg_output, true) > 0) { + log_error("For SplitMode=none, output must be a file."); + return -EINVAL; + } + if (!endswith(arg_output, ".journal")) { + log_error("For SplitMode=none, output file name must end with .journal."); + return -EINVAL; + } } if (arg_split_mode == JOURNAL_WRITE_SPLIT_HOST