Hi Takeru,
Takeru Fukushima wrote,
Hi,
Unable to output messages in syslog function immediately after restarting the log daemon. Caused by ECONNREFUSED on errno in the following __vsyslog function. (libc/misc/syslog/syslog.c)
I am unable to reproduce it with following test case and busybox syslogd. What kind of syslogd do you are using?
#include <stdio.h> #include <string.h>
#include <syslog.h> #include <time.h> #include <errno.h>
#include <sys/types.h> #include <sys/socket.h> #include <unistd.h> #include <sys/file.h> #include <sys/signal.h> #include <sys/syslog.h>
int main(void) { char tbuf[1024]; char strbuf[1024]; time_t now; int rc, count = 0;
printf("\nSyslog loop start!\n\n");
openlog("test", LOG_CONS | LOG_PID | LOG_NDELAY, LOG_LOCAL1);
while (fgets(strbuf, 1024, stdin)) {
if ((char)'e' == strbuf[0]) { printf("Syslog loop end\n"); break; }
syslog(LOG_USER|LOG_NOTICE, "Test %u", count++);
} closelog();
return 0; }