blob: a2296ebfe4d957ae91bd56f84991052e3361f93c [file] [log] [blame]
# Sample dhcpcd hook for ypbind
# This script is only suitable for the Linux version.
ypbind_pid()
{
[ -s /var/run/ypbind.pid ] && cat /var/run/ypbind.pid
}
make_yp_conf()
{
[ -z "${new_nis_domain}" -a -z "${new_nis_servers}" ] && return 0
local cf=/etc/yp.conf."${interface}" prefix= x= pid=
rm -f "${cf}"
echo "${signature}" > "${cf}"
if [ -n "${new_nis_domain}" ]; then
domainname "${new_nis_domain}"
if [ -n "${new_nis_servers}" ]; then
prefix="domain ${new_nis_domain} server "
else
echo "domain ${new_nis_domain} broadcast" >> "${cf}"
fi
else
prefix="ypserver "
fi
for x in ${new_nis_servers}; do
echo "${prefix}${x}" >> "${cf}"
done
save_conf /etc/yp.conf
mv -f "${cf}" /etc/yp.conf
pid="$(ypbind_pid)"
if [ -n "${pid}" ]; then
kill -HUP "${pid}"
fi
}
restore_yp_conf()
{
[ -n "${old_nis_domain}" ] && domainname ""
restore_conf /etc/yp.conf || return 0
local pid="$(ypbind_pid)"
if [ -n "${pid}" ]; then
kill -HUP "${pid}"
fi
}
case "${reason}" in
BOUND|INFORM|REBIND|REBOOT|RENEW|TIMEOUT) make_yp_conf;;
EXPIRE|FAIL|IPV4LL|RELEASE|STOP) restore_yp_conf;;
esac