From 0deaed0867d3782951b8229fcc160f8780d09562 Mon Sep 17 00:00:00 2001
From: Per Cederqvist <ceder@lysator.liu.se>
Date: Sun, 23 May 2010 15:21:22 +0200
Subject: [PATCH] Don't attempt to use DNS when no nameserver is available.

* src/server/testsuite/Makefile.am (site.exp): Set use_dns to yes
or no depending on if adnshost can resolve 127.0.0.1 or not.
* src/server/testsuite/config/unix.exp (lyskomd_start): Set the
"Use DNS" configuration depending on the use_dns setting from
site.exp.
---
 ChangeLog                            |  9 +++++++++
 src/server/testsuite/Makefile.am     | 20 ++++++++++++++++----
 src/server/testsuite/config/unix.exp |  5 +++++
 3 files changed, 30 insertions(+), 4 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index d3671883e..d9e7e440f 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2010-05-23  Per Cederqvist  <ceder@lysator.liu.se>
+
+	Don't attempt to use DNS when no nameserver is available.
+	* src/server/testsuite/Makefile.am (site.exp): Set use_dns to yes
+	or no depending on if adnshost can resolve 127.0.0.1 or not.
+	* src/server/testsuite/config/unix.exp (lyskomd_start): Set the
+	"Use DNS" configuration depending on the use_dns setting from
+	site.exp.
+
 2010-05-22  Per Cederqvist  <ceder@lysator.liu.se>
 
 	Minor doc fix: DNS is non-blocking.
diff --git a/src/server/testsuite/Makefile.am b/src/server/testsuite/Makefile.am
index 05785b2cb..bff254d75 100644
--- a/src/server/testsuite/Makefile.am
+++ b/src/server/testsuite/Makefile.am
@@ -174,7 +174,7 @@ check-test-sigjmp: test-sigjmp
 	(cd ../../libraries/adns/client && $(MAKE) check)
 
 site.exp: Makefile ../../libraries/adns/client/adnshost
-	$(RM) $@ $@.tmp
+	$(RM) $@ $@.tmp $@.tmp.adns
 	echo "# this file is automatically generated by Makefile.am" > $@.tmp
 	echo "set l2g ./test-l2g" >> $@.tmp
 	echo "set top_srcdir $(top_srcdir)" >> $@.tmp
@@ -184,9 +184,21 @@ site.exp: Makefile ../../libraries/adns/client/adnshost
 	else \
 	    echo "set valgrind \"\"" >> $@.tmp ; \
 	fi
-	(../../libraries/adns/client/adnshost -i 127.0.0.1 2>/dev/null \
-	    || echo 1.0.0.127.in-addr.arpa PTR 127.0.0.1) \
-	    | sed -e 's/.*PTR /set lyskomd_host "/' -e 's/$$/"/' -e q >> $@.tmp
+	@echo
+	@echo '## The next command takes 30 seconds' \
+	    if you have no network connection.
+	@echo
+	if ../../libraries/adns/client/adnshost -i 127.0.0.1 \
+	    2>/dev/null >$@.tmp.adns; \
+	then \
+	    sed -e 's/.*PTR /set lyskomd_host "/' -e 's/$$/"/' -e q \
+	        < $@.tmp.adns >> $@.tmp; \
+	    echo 'set use_dns yes' >> $@.tmp; \
+	else \
+	    echo 'set lyskomd_host "127.0.0.1"' >> $@.tmp; \
+	    echo 'set use_dns no' >> $@.tmp; \
+	fi
+	$(RM) $@.tmp.adns
 	echo set valgrind_fd $(VALGRIND_FD) >> $@.tmp
 	echo set python \"$(PYTHON)\" >> $@.tmp
 	chmod 444 $@.tmp
diff --git a/src/server/testsuite/config/unix.exp b/src/server/testsuite/config/unix.exp
index 027dfd7d0..0aeb92bc5 100644
--- a/src/server/testsuite/config/unix.exp
+++ b/src/server/testsuite/config/unix.exp
@@ -616,6 +616,7 @@ proc lyskomd_start {{aux_item_conf_file ""} \
     global MEMTRACE
     global line_leader
     global any
+    global use_dns
 
     obtain_lock
 
@@ -661,6 +662,10 @@ proc lyskomd_start {{aux_item_conf_file ""} \
 	&& [regexp -nocase "Garb:" $base_config] == 0} {
 	puts $cf "Garb: on"
     }
+    # lyskomd.0/bug-1318.exp explicitly disables "Use DNS".
+    if {[regexp -nocase "Use DNS:" $extra_config] == 0} {
+	puts $cf "Use DNS: $use_dns"
+    }
     puts $cf "Pid file: etc/pid"
     puts $cf "Memory usage file: etc/memory-usage"
     puts $cf "Status file: etc/status"
-- 
GitLab