/***************************************************************************
create a child process to handle DNS lookups
****************************************************************************/
-void start_async_dns(void)
+void start_async_dns(struct messaging_context *msg)
{
int fd1[2], fd2[2];
NTSTATUS status;
CatchSignal(SIGHUP, SIG_IGN);
CatchSignal(SIGTERM, sig_term);
- status = reinit_after_fork(nmbd_messaging_context(),
- nmbd_event_context(),
- true);
+ status = reinit_after_fork(msg, nmbd_event_context(), true);
if (!NT_STATUS_IS_OK(status)) {
DEBUG(0,("reinit_after_fork() failed\n"));
/***************************************************************************
check the DNS queue
****************************************************************************/
-void run_dns_queue(void)
+void run_dns_queue(struct messaging_context *msg)
{
struct query_record r;
struct packet_struct *p, *p2;
if (!process_exists_by_pid(child_pid)) {
close(fd_in);
close(fd_out);
- start_async_dns();
+ start_async_dns(msg);
}
status = read_data(fd_in, (char *)&r, sizeof(r));
* (nmbd_packets.c)
*/
- if(listen_for_packets(run_election)) {
+ if (listen_for_packets(nmbd_messaging_context(),
+ run_election)) {
TALLOC_FREE(frame);
return;
}
/* Setup the async dns. We do it here so it doesn't have all the other
stuff initialised and thus chewing memory and sockets */
if(lp_we_are_a_wins_server() && lp_dns_proxy()) {
- start_async_dns();
+ start_async_dns(nmbd_messaging_context());
}
#endif
return True if the socket is dead
***************************************************************************/
-bool listen_for_packets(bool run_election)
+bool listen_for_packets(struct messaging_context *msg, bool run_election)
{
static struct pollfd *fds = NULL;
static struct socket_attributes *attrs = NULL;
#ifndef SYNC_DNS
if ((dns_fd != -1) && (dns_pollidx != -1) &&
(fds[dns_pollidx].revents & (POLLIN|POLLHUP|POLLERR))) {
- run_dns_queue();
+ run_dns_queue(msg);
}
#endif
int asyncdns_fd(void);
void kill_async_dns_child(void);
-void start_async_dns(void);
-void run_dns_queue(void);
+void start_async_dns(struct messaging_context *msg);
+void run_dns_queue(struct messaging_context *msg);
bool queue_dns_query(struct packet_struct *p,struct nmb_name *question);
bool queue_dns_query(struct packet_struct *p,struct nmb_name *question);
void kill_async_dns_child(void);
void queue_packet(struct packet_struct *packet);
void run_packet_queue(void);
void retransmit_or_expire_response_records(time_t t);
-bool listen_for_packets(bool run_election);
+bool listen_for_packets(struct messaging_context *msg, bool run_election);
bool send_mailslot(bool unique, const char *mailslot,char *buf, size_t len,
const char *srcname, int src_type,
const char *dstname, int dest_type,