CatchSignal(SIGHUP, SIG_IGN);
CatchSignal(SIGTERM, SIGNAL_CAST sig_term );
+ if (!reinit_after_fork(nmbd_messaging_context(),
+ nmbd_event_context(), true)) {
+ DEBUG(0,("reinit_after_fork() failed\n"));
+ smb_panic("reinit_after_fork() failed");
+ }
+
asyncdns_process();
}
if (fd_in == -1)
return;
- /* Allow SIGTERM to kill us. */
- BlockSignals(False, SIGTERM);
-
if (!process_exists_by_pid(child_pid)) {
close(fd_in);
close(fd_out);
if (!NT_STATUS_IS_OK(status)) {
DEBUG(0, ("read from child failed: %s\n", nt_errstr(status)));
fd_in = -1;
- BlockSignals(True, SIGTERM);
return;
}
- BlockSignals(True, SIGTERM);
-
namerec = add_dns_result(&r.name, r.result);
if (dns_current) {
DEBUG(3,("DNS search for %s - ", nmb_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);
-
namerec = add_dns_result(question, dns_ip);
if(namerec == NULL) {
send_wins_name_query_response(NAM_ERR, p, NULL);