On Friday, April 14, 2017 07:36:55 PM Peter Wemm wrote: > On Friday, April 14, 2017 02:14:16 PM Ngie Cooper wrote: > > > On Apr 14, 2017, at 14:10, Maxim Sobolev <sobo...@sippysoft.com> wrote: > > > > > > Peter, Ngie, > > > > > > Looks like out of that refactoring came a logical bug that is present in > > > the head, which causes syslod to first to shutdown the socket for > > > reading > > > and then try to select/recv on it (which is somewhat stupid). And that > > > issue has been masked by shutdown() on datagram socket becoming > > > effectively a NOP in 11 & head 20 months ago. It only affects head > > > though, 11-stable still has the old code which does not include that > > > half-closed socket into the select list. Attached patch is expected to > > > fix head, Peter, it would be nice if you can give it a try (restoring > > > latest changes into uipc_sockets.c) and let me know if it helps. > > > > > > Thanks! > > > > CCing hrs@ for input as he did the refactoring. > > Thanks! > > -Ngie > > > > PS LGTM with the change. Will wait for feedback from wemm@. > > This is definitely not working. I get ENOSPC and listen queue overflows on > /var/run/logpriv now. > > Grabbing an old 10.3 /usr/sbin/syslogd and placing it on the top of the 12.x > one worked fine, aside from the include statements.
This can't be right: if (SecureMode || res->ai_family == AF_LOCAL) { /* Forbid communication in secure mode. */ if (shutdown(s, SHUT_RD) < 0 && errno != ENOTCONN) { logerror("shutdown"); if (!Debug) die(0); } dprintf("listening on socket\n"); sl_recv = NULL; } This appears to disable unix domain sockets like /var/run/log and /var/run/logpriv. -- Peter Wemm - pe...@wemm.org; pe...@freebsd.org; pe...@yahoo-inc.com; KI6FJV UTF-8: for when a ' or ... just won\342\200\231t do\342\200\246
signature.asc
Description: This is a digitally signed message part.