--- dnscache.c	2001-02-11 22:11:45.000000000 +0100
+++ dnscache.c	2007-06-27 21:48:03.000000000 +0200
@@ -1,3 +1,4 @@
+#include <signal.h>
 #include <unistd.h>
 #include "env.h"
 #include "exit.h"
@@ -386,6 +387,12 @@
 
 char seed[128];
 
+void signal_handler(const int sig)
+{
+  if (sig == SIGHUP)
+    roots_init();
+}
+
 int main()
 {
   char *x;
@@ -442,6 +449,8 @@
   if (socket_listen(tcp53,20) == -1)
     strerr_die2sys(111,FATAL,"unable to listen on TCP socket: ");
 
+  signal(SIGHUP, signal_handler);
+
   log_startup();
   doit();
 }

