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);
&r_fds, &w_fds, &timeout, &maxfd);
}
- /* Prepare for the select - allow certain signals. */
-
- BlockSignals(False, SIGTERM);
-
selrtn = sys_select(maxfd+1,&r_fds,&w_fds,NULL,&timeout);
- /* We can only take signals when we are in the select - block them again here. */
-
- BlockSignals(True, SIGTERM);
-
if (run_events(nmbd_event_context(), selrtn, &r_fds, &w_fds)) {
return False;
}