On Dec 2 15:17, Corinna Vinschen wrote: > On Dec 2 12:07, Christian Franke wrote: > > Corinna Vinschen wrote: > > > On Dec 2 10:31, Christian Franke wrote: > > > > I presume that the root of the problem is that the > > > > > > > > writev(fd, { {"< PRI >", . }, { "MSG", . } }, 2) > > > > used within syslog() sends "< PRI >" and "MSG" in > > > > two separate datagrams to /dev/log. > > > > > > > > > > Probably not. The "kernel:" message is generated if something is > > > available on /dev/kmsg, which shouldn't be the case. The only message > > > type generated there are exceptions catched by Cygwin. I'll have a > > > look into it. Thanks for the report. > > > > > > > > > > Another test: > > > > This sends one UDP package on 1.5, but two on 1.7: > > > > int sd = socket(AF_LOCAL, SOCK_DGRAM, 0); > > > > struct sockaddr_un sa; sa.sun_family = AF_LOCAL; > > strcpy(sa.sun_path, "/dev/log"); > > connect(sd, (struct sockaddr *)&sa, sizeof(sa)); > > > > struct iovec iv[2] = { { "<1>", 3 }, { "test: text", 10 } }; > > writev(sd, iv, 2); > > Yes, but... why is that a problem for syslog-ng? Shouldn't it have > to expect that a message comes in multiple UDP packages? Hmm.
Ok, it's definitely a problem in Cygwin. Fortunately one which is easy to fix. The send() function splits messages into chunks to avoid the problem from KB 823764. However, it's not correc to do this for datagram sockets, so I added code to avoid this. The "kernel:" tag was also a Cygwin problem, apparently. The default facility is set to 0, which is equivalent to LOG_KERN. The "kernel:" is added by syslog-ng in this case. I changed vsyslog() so that LOG_KERN messages from user space are not possible anymore since the default facility is always set to LOG_USER if it's not set to some other non-LOG_KERN value already. Thanks for the report, Corinna -- Corinna Vinschen Please, send mails regarding Cygwin to Cygwin Project Co-Leader cygwin AT cygwin DOT com Red Hat -- Problem reports: http://cygwin.com/problems.html FAQ: http://cygwin.com/faq/ Documentation: http://cygwin.com/docs.html Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple