logger: warn when --file and command line message are combined

When --file is combined with command line arguments the later has
silently been ignored.  This commit makes user to be aware the logger
will not use command line arguments when --file is specified.

Reported-by: "Daniel 'DaB.' Baur" <debian@daniel.baur4.info>
Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=467244
CC: Andreas Henriksson <andreas@fatal.se>
Signed-off-by: Sami Kerola <kerolasa@iki.fi>
This commit is contained in:
Sami Kerola 2014-07-27 18:01:09 +01:00
parent 2e0fd22d5d
commit 3d9f4b1d23
1 changed files with 5 additions and 2 deletions

View File

@ -535,6 +535,7 @@ int main(int argc, char **argv)
.rfc5424_host = 1,
};
int ch;
int stdout_reopened = 0;
#ifdef HAVE_LIBSYSTEMD
FILE *jfd = NULL;
#endif
@ -570,8 +571,8 @@ int main(int argc, char **argv)
switch (ch) {
case 'f': /* file to log */
if (freopen(optarg, "r", stdin) == NULL)
err(EXIT_FAILURE, _("file %s"),
optarg);
err(EXIT_FAILURE, _("file %s"), optarg);
stdout_reopened = 1;
break;
case 'i': /* log process id also */
ctl.logflags |= LOG_PID;
@ -642,6 +643,8 @@ int main(int argc, char **argv)
}
argc -= optind;
argv += optind;
if (stdout_reopened && argc)
warnx(_("--file <file> and <message> are mutually exclusive, message is ignored"));
#ifdef HAVE_LIBSYSTEMD
if (jfd) {
int ret = journald_entry(jfd);