# Lookup the hostname in DNS if not set lookup_hostname() { [ -z "${new_ip_address}" ] && return 1 local h= # Silly ISC programs love to send error text to stdout if type dig >/dev/null 2>&1; then h=`dig +short -x ${new_ip_address}` if [ $? = 0 ]; then echo "${h}" | sed 's/\.$//' return 0 fi elif type host >/dev/null 2>&1; then h=`host ${new_ip_address}` if [ $? = 0 ]; then echo "${h}" \ | sed 's/.* domain name pointer \(.*\)./\1/' return 0 fi fi return 1 } set_hostname() { if [ -z "${new_host_name}" -a -z "${new_fqdn_name}" ]; then export new_host_name="$(lookup_hostname)" fi } case "${reason}" in BOUND|INFORM|REBIND|REBOOT|RENEW|TIMEOUT) set_hostname;; esac