Home | History | Annotate | Download | only in dhcpcd-hooks
      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 case "${reason}" in
     33 BOUND|INFORM|REBIND|REBOOT|RENEW|TIMEOUT)	set_hostname;;
     34 esac
     35