# #-- http_user_agent.test --#
# source the master var file when it's there
[ -f ../.tpkg.var.master ] && source ../.tpkg.var.master
# use .tpkg.var.test for in test variable passing
[ -f .tpkg.var.test ] && source .tpkg.var.test
PRE="../.."
# Query and check check that we get the correct answer from the auth_zone
query () {
echo "> dig www.example.com."
dig @localhost -p $UNBOUND_PORT www.example.com. | tee outfile
if grep SERVFAIL outfile; then
echo "> try again"
dig @localhost -p $UNBOUND_PORT www.example.com. | tee outfile
fi
if grep SERVFAIL outfile; then
echo "> try again"
sleep 1
dig @localhost -p $UNBOUND_PORT www.example.com. | tee outfile
fi
if grep SERVFAIL outfile; then
echo "> try again"
sleep 1
dig @localhost -p $UNBOUND_PORT www.example.com. | tee outfile
fi
if grep SERVFAIL outfile; then
echo "> try again"
sleep 1
dig @localhost -p $UNBOUND_PORT www.example.com. | tee outfile
fi
if grep SERVFAIL outfile; then
echo "> try again"
sleep 10
dig @localhost -p $UNBOUND_PORT www.example.com. | tee outfile
fi
if grep SERVFAIL outfile; then
echo "> try again"
sleep 10
dig @localhost -p $UNBOUND_PORT www.example.com. | tee outfile
fi
echo "> check answer"
if grep "1.2.3.4" outfile; then
echo "OK"
else
echo "Not OK"
exit 1
fi
}
# Reload the configuration and retransfer the zone
reload_and_retransfer () {
echo "> Reloading Unbound"
echo "$PRE/unbound-control -c ub.conf reload"
$PRE/unbound-control -c ub.conf reload
if test $? -ne 0; then
echo "wrong exit value from unbound-control"
exit 1
fi
echo "> Refetching example.com"
echo "$PRE/unbound-control -c ub.conf auth_zone_transfer example.com"
$PRE/unbound-control -c ub.conf auth_zone_transfer example.com
if test $? -ne 0; then
echo "wrong exit value from unbound-control"
exit 1
fi
}
# do the test
query
# add custom http-user-agent
echo "server: http-user-agent: customUA" >> ub.conf
reload_and_retransfer
query
# hide http-user-agent
echo "server: hide-http-user-agent: yes" >> ub.conf
reload_and_retransfer
query
echo "> cat logfiles"
cat petal.log
cat unbound.log
# check petal.log for the correct number of occurrences.
# It should be 2 User-Agents, one being the custom.
echo "> check User-Agent occurrences"
occurrences=`grep "User-Agent:" petal.log | wc -l`
echo $occurrences
if test $occurrences -eq 2; then
echo "OK"
else
echo "Not OK"
exit 1
fi
echo "> check custom User-Agent"
if grep "User-Agent: customUA" petal.log; then
echo "OK"
else
echo "Not OK"
exit 1
fi
exit 0