diff options
-rw-r--r-- | Changelog | 1 | ||||
-rw-r--r-- | logger.c | 15 | ||||
-rw-r--r-- | sysklogd/logger.c | 15 |
3 files changed, 25 insertions, 6 deletions
@@ -45,6 +45,7 @@ * Mark Whitley -- remix of xargs * Jim Gleason <jimg@lineo.com> -- fixed tar so it no longer breaks hard links. + * Matt Kraai -- logger now logs all arguments, not just the first -Erik Andersen @@ -149,10 +149,19 @@ extern int logger_main(int argc, char **argv) } message = buf; } else { - if (argc >= 1) - message = *argv; - else + if (argc >= 1) { + int len = 1; /* for the '\0' */ + for (; *argv != NULL; argv++) { + len += strlen(*argv); + len += 1; /* for the space between the args */ + message = xrealloc(message, len); + strcat(message, *argv); + strcat(message, " "); + } + message[strlen(message)-1] = '\0'; + } else { error_msg_and_die("No message\n"); + } } openlog(name, option, (pri | LOG_FACMASK)); diff --git a/sysklogd/logger.c b/sysklogd/logger.c index 1ed6dc6..1c454e5 100644 --- a/sysklogd/logger.c +++ b/sysklogd/logger.c @@ -149,10 +149,19 @@ extern int logger_main(int argc, char **argv) } message = buf; } else { - if (argc >= 1) - message = *argv; - else + if (argc >= 1) { + int len = 1; /* for the '\0' */ + for (; *argv != NULL; argv++) { + len += strlen(*argv); + len += 1; /* for the space between the args */ + message = xrealloc(message, len); + strcat(message, *argv); + strcat(message, " "); + } + message[strlen(message)-1] = '\0'; + } else { error_msg_and_die("No message\n"); + } } openlog(name, option, (pri | LOG_FACMASK)); |