From a6c752201e9031b51a6d89349f1cec1f690f56ef Mon Sep 17 00:00:00 2001 From: Erik Andersen Date: Tue, 18 Apr 2000 00:00:52 +0000 Subject: Updates -Erik --- syslogd.c | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) (limited to 'syslogd.c') diff --git a/syslogd.c b/syslogd.c index 8827265d5..228d0a17a 100644 --- a/syslogd.c +++ b/syslogd.c @@ -226,18 +226,20 @@ static void doSyslogd (void) } else { #define BUFSIZE 1024 + 1 - char buf[BUFSIZE]; + char buf; char *q, *p; int n_read; char line[BUFSIZE]; unsigned char c; + int pri; - /* Keep reading stuff till there is nothing else to read */ - while( (n_read = read (fd, buf, BUFSIZE)) > 0 && errno != EOF) { - int pri = (LOG_USER | LOG_NOTICE); + /* Get set to read in a line */ + memset (line, 0, sizeof(line)); + pri = (LOG_USER | LOG_NOTICE); - memset (line, 0, sizeof(line)); - p = buf; + /* Keep reading stuff till there is nothing else to read */ + while( (n_read = read (fd, &buf, 1)) > 0) { + p = &buf; q = line; while (p && (c = *p) && q < &line[sizeof(line) - 1]) { if (c == '<') { @@ -262,6 +264,7 @@ static void doSyslogd (void) /* Now log it */ logMessage(pri, line); + break; } close (fd); FD_CLR (fd, &readfds); -- cgit v1.2.3