diff options
Diffstat (limited to 'src/dns/test_gnunet_dns.sh')
-rwxr-xr-x | src/dns/test_gnunet_dns.sh | 30 |
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 |