1# Lookup the hostname in DNS if not set 2 3lookup_hostname() 4{ 5 [ -z "$new_ip_address" ] && return 1 6 # Silly ISC programs love to send error text to stdout 7 if type dig >/dev/null 2>&1; then 8 h=$(dig +short -x $new_ip_address) 9 if [ $? = 0 ]; then 10 echo "$h" | sed 's/\.$//' 11 return 0 12 fi 13 elif type host >/dev/null 2>&1; then 14 h=$(host $new_ip_address) 15 if [ $? = 0 ]; then 16 echo "$h" \ 17 | sed 's/.* domain name pointer \(.*\)./\1/' 18 return 0 19 fi 20 elif type getent >/dev/null 2>&1; then 21 h=$(getent hosts $new_ip_address) 22 if [ $? = 0 ]; then 23 echo "$h" | sed 's/[^ ]* *\([^ ]*\).*/\1/' 24 return 0 25 fi 26 fi 27 return 1 28} 29 30set_hostname() 31{ 32 if [ -z "$new_host_name" -a -z "$new_fqdn_name" ]; then 33 export new_host_name="$(lookup_hostname)" 34 fi 35} 36 37if $if_up; then 38 set_hostname 39fi 40