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