On Thu, Feb 6, 2020 at 5:32 PM Alexander Bluhm <[email protected]> wrote: > > On Thu, Feb 06, 2020 at 11:46:25AM -0500, sven falempin wrote: > > If for exemple there s a wrong endpoint in the config file, like > > local1.warn @badhost > > and no other the daemon will close fd_udp. > > Your DNS lookup fails at startup, sockets are closed. > > > // reload with a badhost in /etc/hosts for the sake of testing > > Later at SIGHUP you DNS works again. Now the sockets are needed. > > So do not close them if DNS for udp fails. > Does this diff fix your setup? > > bluhm > > Index: usr.sbin/syslogd/syslogd.c > =================================================================== > RCS file: /data/mirror/openbsd/cvs/src/usr.sbin/syslogd/syslogd.c,v > retrieving revision 1.262 > diff -u -p -r1.262 syslogd.c > --- usr.sbin/syslogd/syslogd.c 5 Jul 2019 13:23:27 -0000 1.262 > +++ usr.sbin/syslogd/syslogd.c 6 Feb 2020 21:51:30 -0000 > @@ -2416,6 +2416,7 @@ init(void) > s = 0; > strlcpy(progblock, "*", sizeof(progblock)); > strlcpy(hostblock, "*", sizeof(hostblock)); > + send_udp = send_udp6 = 0; > while (getline(&cline, &s, cf) != -1) { > /* > * check for end-of-section, comments, strip off trailing > @@ -2755,6 +2756,9 @@ cfline(char *line, char *progblock, char > sizeof(f->f_un.f_forw.f_addr)) != 0) { > log_warnx("bad hostname \"%s\"", > f->f_un.f_forw.f_loghost); > + /* DNS lookup may work after SIGHUP, keep sockets */ > + if (strncmp(proto, "udp", 3) == 0) > + send_udp = send_udp6 = 1; > break; > } > f->f_file = -1;
It make sense and it totally works. @ok Thank you. -- -- --------------------------------------------------------------------------------------------------------------------- Knowing is not enough; we must apply. Willing is not enough; we must do
