diff options
author | Jeremy Allison <jra@samba.org> | 1998-01-29 08:25:46 +0000 |
---|---|---|
committer | Jeremy Allison <jra@samba.org> | 1998-01-29 08:25:46 +0000 |
commit | 89652787c3894c7a79345a2ea67a4de741a0f760 (patch) | |
tree | 2357832bc8bbb9e24642ff4fa9d266242df7543a /source3/nmbd/asyncdns.c | |
parent | e525e29487dcc5e3e5a504dfae5d83def25f58e6 (diff) | |
download | samba-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.c | 12 |
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); |