summaryrefslogtreecommitdiff
path: root/source3/nmbd/asyncdns.c
diff options
context:
space:
mode:
authorJeremy Allison <jra@samba.org>1998-01-29 08:25:46 +0000
committerJeremy Allison <jra@samba.org>1998-01-29 08:25:46 +0000
commit89652787c3894c7a79345a2ea67a4de741a0f760 (patch)
tree2357832bc8bbb9e24642ff4fa9d266242df7543a /source3/nmbd/asyncdns.c
parente525e29487dcc5e3e5a504dfae5d83def25f58e6 (diff)
downloadsamba-89652787c3894c7a79345a2ea67a4de741a0f760.tar.gz
samba-89652787c3894c7a79345a2ea67a4de741a0f760.tar.bz2
samba-89652787c3894c7a79345a2ea67a4de741a0f760.zip
Makefile: Fix for OSF1 typo.
asyncdns.c: Fixes that went into 1.9.18p2 - allow unclocking of sigterm. chgpasswd.c: char -> unsigned char fixes. includes.h: AIX fix to get prototype for inet_ntoa. local.h: Tune size of shared memory based on MAX_OPEN_FILES. nmbd_mynames.c: Fix for nmbd repeated refresh bug. nmbd_responserecordsdb.c: Fix for nmbd repeated refresh bug. nmbd_winsserver.c: Fix for multi-homed registration optimisation. smb.h: Moved default shared memory size to local.h Jeremy. (This used to be commit fa5466805685d461564054d7d9947948fc56ae93)
Diffstat (limited to 'source3/nmbd/asyncdns.c')
-rw-r--r--source3/nmbd/asyncdns.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/source3/nmbd/asyncdns.c b/source3/nmbd/asyncdns.c
index ee3fdfcd17..3b71369d67 100644
--- a/source3/nmbd/asyncdns.c
+++ b/source3/nmbd/asyncdns.c
@@ -187,6 +187,9 @@ void run_dns_queue(void)
if (fd_in == -1)
return;
+ /* Allow SIGTERM to kill us. */
+ BlockSignals(False, SIGTERM);
+
if (!process_exists(child_pid)) {
close(fd_in);
start_async_dns();
@@ -197,9 +200,12 @@ void run_dns_queue(void)
DEBUG(0,("Incomplete DNS answer from child!\n"));
fd_in = -1;
}
+ BlockSignals(True, SIGTERM);
return;
}
+ BlockSignals(True, SIGTERM);
+
namerec = add_dns_result(&r.name, r.result);
if (dns_current) {
@@ -305,8 +311,14 @@ BOOL queue_dns_query(struct packet_struct *p,struct nmb_name *question,
DEBUG(3,("DNS search for %s - ", namestr(question)));
+ /* Unblock TERM signal so we can be killed in DNS lookup. */
+ BlockSignals(False, SIGTERM);
+
dns_ip.s_addr = interpret_addr(qname);
+ /* Re-block TERM signal. */
+ BlockSignals(True, SIGTERM);
+
*n = add_dns_result(question, dns_ip);
if(*n == NULL)
send_wins_name_query_response(NAM_ERR, p, NULL);