#!/bin/sh -e
#
# Test if the DNS server works.

if test -r /etc/skolelinux/config ; then
    mv /etc/skolelinux/config /etc/debian-edu/config
fi

if test -r /etc/debian-edu/config ; then
    . /etc/debian-edu/config
fi

# The internal DNS server is called 'domain'
dnsserver='domain'

if echo "$PROFILE" | grep -q Main-Server ; then
    dnsserver=localhost
fi


# Check if forward and reverse is correct
for hostinfo in \
    tjener:10.0.2.2 \
    tjener.intern:10.0.2.2 \
    ltspserver00:10.0.2.10 \
    static00:10.0.2.50 \
    dhcp001.intern:10.0.2.101 \
    ltsp010:192.168.0.10 \
    ltsp010.intern:192.168.0.10 \
    www.uio.no:129.242.5.35
  do
  host=`echo $hostinfo | cut -d: -f1`
  ip=`echo $hostinfo | cut -d: -f2`

  #echo "Testing '$host' '$ip'"
  forwardip=`host -q "$host" "$dnsserver" 2>/dev/null | grep -v 'CNAME' | awk '{ print $3; }'`
  reversename=`host -q "$ip" "$dnsserver" 2>/dev/null | grep '^Name:' | awk '{ print $2; }'`

  if test "$ip" = "$forwardip" ; then
      echo "success: $0: DNS lookup for '$host' on server '$dnsserver' works ('$forwardip')."
  else
      echo "error: $0: Unable to look up '$host' on server '$dnsserver' ('$forwardip')."
  fi

  if test "$host" = "$reversename" ; then
      echo "success: $0: DNS lookup for '$ip' on server '$dnsserver' works ('$reversename')."
  else
      shortname=`echo $reversename | cut -d. -f1`
      if test "$host" = "$shortname" ; then
	  echo "success: $0: DNS lookup for '$ip' on server '$dnsserver' works ('$reversename')."
      else
	  echo "error: $0: Unable to look up '$ip' on server '$dnsserver' ('$reversename' != '$host')."
      fi
  fi
done
