s3: Remove a bunch of calls to procid_self()
[samba.git] / source3 / nmbd / asyncdns.c
index 0736a66fb8a9bc570aa050230ee3b01d90e2b4a0..0edec372cd4d31b10d78b15707148284b238994c 100644 (file)
@@ -18,6 +18,7 @@
    */
 
 #include "includes.h"
+#include "nmbd/nmbd.h"
 
 /***************************************************************************
   Add a DNS result to the name cache.
@@ -137,6 +138,7 @@ void kill_async_dns_child(void)
 void start_async_dns(void)
 {
        int fd1[2], fd2[2];
+       NTSTATUS status;
 
        CatchChild();
 
@@ -162,10 +164,13 @@ void start_async_dns(void)
        CatchSignal(SIGUSR2, SIG_IGN);
        CatchSignal(SIGUSR1, SIG_IGN);
        CatchSignal(SIGHUP, SIG_IGN);
-        CatchSignal(SIGTERM, SIGNAL_CAST sig_term );
+        CatchSignal(SIGTERM, sig_term);
+
+       status = reinit_after_fork(nmbd_messaging_context(),
+                                  nmbd_event_context(),
+                                  true);
 
-       if (!reinit_after_fork(nmbd_messaging_context(),
-                              nmbd_event_context(), true)) {
+       if (!NT_STATUS_IS_OK(status)) {
                DEBUG(0,("reinit_after_fork() failed\n"));
                smb_panic("reinit_after_fork() failed");
        }
@@ -258,13 +263,8 @@ void run_dns_queue(void)
                        in_dns = 0;
                        p->locked = False;
 
-                       if (p->prev)
-                               p->prev->next = p->next;
-                       else
-                               dns_queue = p->next;
-                       if (p->next)
-                               p->next->prev = p->prev;
                        p2 = p->next;
+                       DLIST_REMOVE(dns_queue, p);
                        free_packet(p);
                        p = p2;
                } else {
@@ -274,10 +274,7 @@ void run_dns_queue(void)
 
        if (dns_queue) {
                dns_current = dns_queue;
-               dns_queue = dns_queue->next;
-               if (dns_queue)
-                       dns_queue->prev = NULL;
-               dns_current->next = NULL;
+               DLIST_REMOVE(dns_queue, dns_queue);
 
                if (!write_child(dns_current)) {
                        DEBUG(3,("failed to send DNS query to child!\n"));
@@ -304,11 +301,7 @@ bool queue_dns_query(struct packet_struct *p,struct nmb_name *question)
                p->locked = True;
        } else {
                p->locked = True;
-               p->next = dns_queue;
-               p->prev = NULL;
-               if (p->next)
-                       p->next->prev = p;
-               dns_queue = p;
+               DLIST_ADD(dns_queue, p);
        }
 
        DEBUG(3,("added DNS query for %s\n", nmb_namestr(question)));