aboutsummaryrefslogtreecommitdiff
path: root/sysklogd
diff options
context:
space:
mode:
Diffstat (limited to 'sysklogd')
-rw-r--r--sysklogd/logger.c26
1 files changed, 15 insertions, 11 deletions
diff --git a/sysklogd/logger.c b/sysklogd/logger.c
index b8aae3d28..623a4f9e5 100644
--- a/sysklogd/logger.c
+++ b/sysklogd/logger.c
@@ -127,14 +127,20 @@ extern int logger_main(int argc, char **argv)
}
}
+ openlog(name, option, (pri | LOG_FACMASK));
if (optind == argc) {
- /* read from stdin */
- i = 0;
- while ((c = getc(stdin)) != EOF && i < sizeof(buf)) {
- buf[i++] = c;
- }
- buf[i++] = '\0';
- message = buf;
+ do {
+ /* read from stdin */
+ i = 0;
+ while ((c = getc(stdin)) != EOF && c != '\n' &&
+ i < (sizeof(buf)-1)) {
+ buf[i++] = c;
+ }
+ if (i > 0) {
+ buf[i++] = '\0';
+ syslog(pri, "%s", buf);
+ }
+ } while (c != EOF);
} else {
len = 1; /* for the '\0' */
message=xcalloc(1, 1);
@@ -146,12 +152,10 @@ extern int logger_main(int argc, char **argv)
strcat(message, " ");
}
message[strlen(message)-1] = '\0';
+ syslog(pri, "%s", message);
}
- /*openlog(name, option, (pri | LOG_FACMASK));
- syslog(pri, "%s", message);
- closelog();*/
- syslog_msg_with_name(name,(pri | LOG_FACMASK),pri,message);
+ closelog();
return EXIT_SUCCESS;
}