aboutsummaryrefslogtreecommitdiff
path: root/src/dns/test_gnunet_dns.sh
diff options
context:
space:
mode:
Diffstat (limited to 'src/dns/test_gnunet_dns.sh')
-rwxr-xr-xsrc/dns/test_gnunet_dns.sh30
1 files changed, 28 insertions, 2 deletions
diff --git a/src/dns/test_gnunet_dns.sh b/src/dns/test_gnunet_dns.sh
index 35585d4..33dfd6c 100755
--- a/src/dns/test_gnunet_dns.sh
+++ b/src/dns/test_gnunet_dns.sh
@@ -6,13 +6,39 @@ then
echo "This test only works if run as root. Skipping."
exit 0
fi
+if ! which sudo > /dev/null
+then
+ echo "This test requires sudo. Skipping."
+ exit 0
+fi
+if [ ! -x `which sudo` ]
+then
+ echo "This test requires sudo. Skipping."
+ exit 0
+fi
+if ! which nslookup
+then
+ echo "This test requires nslookup. Skipping."
+ exit 0
+fi
+if [ ! -x `which nslookup` ]
+then
+ echo "This test requires nslookup. Skipping."
+ exit 0
+fi
export PATH=".:$PATH"
gnunet-service-dns -c dns.conf &
gnunet-dns-redirector -c dns.conf -4 127.0.0.1 &
sleep 1
-LO=`nslookup gnunet.org | grep Address | tail -n1`
+# need to run 'nslookup' as 'nobody', as gnunet-service-dns runs as root
+# and thus 'root' is excepted from DNS interception!
+LO=`sudo -u nobody nslookup gnunet.org | grep Address | tail -n1`
if [ "$LO" != "Address: 127.0.0.1" ]
then
- echo "Fail: $LO"
+ echo "Fail: got address $LO, wanted 127.0.0.1"
+ ret=1
+else
+ ret=0
fi
kill `jobs -p`
+exit $ret