view scripts/check_db_safety @ 1145:b19ced4435be draft

allow ipv6 addresses as nameserver
author SeekingFor <nobody@nowhere>
date Wed, 30 Oct 2013 02:47:14 +0000
parents 80b445c8c88a
children e991761c3da8
line wrap: on
line source

#!/bin/sh
if [ "$(ls db/dom/ | tr -d 'a-z0-9\n-' | wc -c | tr -d ' \t')" != 0 ]; then
 echo "There's a bad TLD.  You probably don't want to run any shell scripts." >&2
 exit 1
fi
for tld in db/dom/* ; do
 if [ "$(ls $tld/ | tr -d 'a-z0-9\n-' | wc -c | tr -d ' \t')" != 0 ]; then
  tld="$(basename $tld)"
  echo "There's a bad domain under $tld." >&2
  echo "You probably don't want to run any shell scripts." >&2
  exit 1
 fi
 for dom in $tld/* ; do
  if [ "$(ls $dom/ns/ | tr -d 'A-Fa-z0-9\n.-:' | wc -c | tr -d ' \t')" != 0 ]; then
   domain="$(basename $dom).$(basename $tld)"
   echo "There's a bad nameserver under $domain." >&2
   echo "You probably don't want to run any shell scripts." >&2
   exit 1
  fi
  for ns in $dom/ns/* ; do
   if [ "$(cat $ns | tr -d 'A-Fa-f0-9.:\r\n' | wc -c | tr -d ' \t')" != 0 ]; then
    domain="$(basename $dom).$(basename $tld)"
    nsname="$(basename $ns)"
    echo "There's a bad nameserver IP under $domain, for" >&2
    echo " $nsname" >&2
    echo "You probably don't want to run any shell scripts." >&2
    exit 1
   fi
  done
 done
done
if [ "$(ls db/ip/ | tr -d 'A-F0-9\n' | wc -c | tr -d ' \t')" != 0 ]; then
 echo "There's a bad first octet.  You probably don't want to run any shell scripts." >&2
 exit 1
 for first in db/ip/* ; do
  if [ "$(ls $first/ | tr -d 'A-F0-9\n' | wc -c | tr -d ' \t')" != 0 ]; then
   echo "There's a bad second octet under $first." >&2
   echo "You probably don't want to run any shell scripts." >&2
   exit 1
   for second in $first/* ; do
    if [ "$(ls $second/ | tr -d 'A-F0-9\n' | wc -c | tr -d ' \t')" != 0 ]; then
     echo "There's a bad third octet under $second." >&2
     echo "You probably don't want to run any shell scripts." >&2
     exit 1
    fi
    for third in $second/* ; do
     if [ "$(ls $third/ns/ | tr -d 'a-z0-9\n.-' | wc -c | tr -d ' \t')" != 0 ]; then
      ip="$(basename $first).$(basename $second).$(basename $third).0/24"
      echo "There's a bad nameserver under $ip." >&2
      echo "You probably don't want to run any shell scripts." >&2
      exit 1
     fi
     for ns in $third/ns/* ; do
      if [ "$(cat $ns | tr -d '0-9.\n' | wc -c | tr -d ' \t')" != 0 ]; then
       ip="$(basename $first).$(basename $second).$(basename $third).0/24"
       nsname="$(basename $ns)"
       echo "There's a bad nameserver IP under $ip, for" >&2
       echo " $nsname" >&2
       echo "You probably don't want to run any shell scripts." >&2
       exit 1
      fi
     done
    done
   done
  fi
 done
fi