summaryrefslogtreecommitdiff
path: root/source3/nmbd/asyncdns.c
diff options
context:
space:
mode:
authorAndrew Tridgell <tridge@samba.org>1997-12-04 10:58:40 +0000
committerAndrew Tridgell <tridge@samba.org>1997-12-04 10:58:40 +0000
commit00fc025b93171750cb44a409f9c179d4beba004b (patch)
treed803b3833521bcf7ed2170bfc2b3ad8d596d6a8e /source3/nmbd/asyncdns.c
parentbb97a6adacefe2d01ed94a82c0d02801c7e884b1 (diff)
downloadsamba-00fc025b93171750cb44a409f9c179d4beba004b.tar.gz
samba-00fc025b93171750cb44a409f9c179d4beba004b.tar.bz2
samba-00fc025b93171750cb44a409f9c179d4beba004b.zip
catch signals in the async dns daemon and allow it to auto-restart if
necessary (This used to be commit fa599067f074647a5bad2ffd0fce12ae0a4e43d2)
Diffstat (limited to 'source3/nmbd/asyncdns.c')
-rw-r--r--source3/nmbd/asyncdns.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/source3/nmbd/asyncdns.c b/source3/nmbd/asyncdns.c
index f15880080f..57d0eda9b3 100644
--- a/source3/nmbd/asyncdns.c
+++ b/source3/nmbd/asyncdns.c
@@ -128,6 +128,10 @@ void start_async_dns(void)
fd_in = fd2[0];
fd_out = fd1[1];
+ signal(SIGUSR2, SIG_IGN);
+ signal(SIGUSR1, SIG_IGN);
+ signal(SIGHUP, SIG_IGN);
+
asyncdns_process();
}
@@ -167,6 +171,11 @@ void run_dns_queue(void)
if (fd_in == -1)
return;
+ if (!process_exists(child_pid)) {
+ close(fd_in);
+ start_async_dns();
+ }
+
if ((size=read_data(fd_in, (char *)&r, sizeof(r))) != sizeof(r)) {
if (size) {
DEBUG(0,("Incomplete DNS answer from child!\n"));