#!/bin/sh
. /etc/hostconfig
get_host()
{
ifconfig ${primary} inet 2>/dev/null | sed -n '/169\.254/d;/127\.0\.0\.1/d;/0\.0\.0\.0/d;s/^.*inet \([0-9\.]*\) netmask.*/\1/p' | while read ip_address
do
host=$(/usr/bin/host ${ip_address} 2>/dev/null | sed -n 's/.* domain name pointer \([^ ]*\)[\.]$/\1/p')
if [ ! "${host}" = "" ] ; then
echo "${host}"
break;
fi
done
}
if [ ! "${HOSTNAME:=-AUTOMATIC-}" = "-AUTOMATIC-" ] ; then
hostname "${HOSTNAME}"
exit 1
fi
primary=$(netstat -rn | sed -n 's/default [ ]*[^ ]*[ ]*[^ ]*[ ]*[^ ]*[ ]*[^ ]*[ ]*\([^ ]*\)[ ]*[^ ]*/\1/p')
if [ ! "${primary}" = "" ] ; then
host=$(ipconfig getoption "${primary}" host_name)
if [ "${host}" = "" ]; then
host=$(get_host)
fi
fi
if [ "${host}" = "" ]; then
localhostname="$(/usr/sbin/scutil --get LocalHostName)"
if [ ! "${localhostname}" = "" ]; then
host="${localhostname}.local"
fi
fi
if [ "${host}" = "" ]; then
host=localhost
fi
logger -i -p daemon.notice -t set-hostname setting hostname to "${host}"
hostname "${host}"
exit 0