Move logging on TCP timeout from child process to main process.

Callong my_syslog from a signal handler is not good.

Thanks to Dominik Derigs for spotting this.
This commit is contained in:
Simon Kelley committed 2026-03-30 20:23:56 +01:00
1 parent dd707937d5
commit e0bec3342b
2 files changed
+3 -2

No files matched your search

+3
View File
@@ -1083,6 +1083,9 @@ int cache_recv_insert(time_t now, int fd)
!read_write(fd, (unsigned char *)&validatecount, sizeof(validatecount), RW_READ) ||
!read_write(fd, (unsigned char *)&validatecountp, sizeof(validatecountp), RW_READ)))
return 0;
if (op == PIPE_OP_KILLED)
my_syslog(LOG_INFO, _("TCP process for DNSSEC validation timed out"));
/* There's a tiny chance that the frec may have been freed
and reused before the TCP process returns. Detect that with
-2
View File
@@ -1385,8 +1385,6 @@ static void sig_handler(int sig)
read_write(daemon->pipe_to_parent, (unsigned char *)(&daemon->forward_to_tcp), sizeof(daemon->forward_to_tcp), RW_WRITE);
read_write(daemon->pipe_to_parent, (unsigned char *)(&daemon->forward_to_tcp->uid), sizeof(daemon->forward_to_tcp->uid), RW_WRITE);
my_syslog(LOG_INFO, _("TCP process for DNSSEC validation timed out"));
_exit(0);
}
}