• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Lookup the hostname in DNS if not set
2
3lookup_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
25set_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
32case "${reason}" in
33BOUND|INFORM|REBIND|REBOOT|RENEW|TIMEOUT)	set_hostname;;
34esac
35