summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--source3/nmbd/asyncdns.c10
-rw-r--r--source3/nmbd/nmbd.c5
-rw-r--r--source3/nmbd/nmbd_packets.c4
-rw-r--r--source3/nmbd/nmbd_proto.h6
4 files changed, 12 insertions, 13 deletions
diff --git a/source3/nmbd/asyncdns.c b/source3/nmbd/asyncdns.c
index 649b9db7f7..a42ad25c20 100644
--- a/source3/nmbd/asyncdns.c
+++ b/source3/nmbd/asyncdns.c
@@ -135,7 +135,7 @@ void kill_async_dns_child(void)
/***************************************************************************
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;
@@ -166,9 +166,7 @@ void start_async_dns(void)
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"));
@@ -205,7 +203,7 @@ static bool write_child(struct packet_struct *p)
/***************************************************************************
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;
@@ -218,7 +216,7 @@ void run_dns_queue(void)
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));
diff --git a/source3/nmbd/nmbd.c b/source3/nmbd/nmbd.c
index 7dff92a502..95bb89bb05 100644
--- a/source3/nmbd/nmbd.c
+++ b/source3/nmbd/nmbd.c
@@ -480,7 +480,8 @@ static void process(void)
* (nmbd_packets.c)
*/
- if(listen_for_packets(run_election)) {
+ if (listen_for_packets(nmbd_messaging_context(),
+ run_election)) {
TALLOC_FREE(frame);
return;
}
@@ -905,7 +906,7 @@ static bool open_sockets(bool isdaemon, int port)
/* 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
diff --git a/source3/nmbd/nmbd_packets.c b/source3/nmbd/nmbd_packets.c
index c7ecfc6d36..da38dcfbfe 100644
--- a/source3/nmbd/nmbd_packets.c
+++ b/source3/nmbd/nmbd_packets.c
@@ -1864,7 +1864,7 @@ static void free_processed_packet_list(struct processed_packet **pp_processed_pa
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;
@@ -1948,7 +1948,7 @@ bool listen_for_packets(bool run_election)
#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
diff --git a/source3/nmbd/nmbd_proto.h b/source3/nmbd/nmbd_proto.h
index 0258b4a478..0e62bc0d0e 100644
--- a/source3/nmbd/nmbd_proto.h
+++ b/source3/nmbd/nmbd_proto.h
@@ -28,8 +28,8 @@
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);
@@ -264,7 +264,7 @@ void reply_netbios_packet(struct packet_struct *orig_packet,
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,