| # 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 |
| } |
| |
| if $if_up; then |
| set_hostname |
| fi |