blob: 2da68ebc9bcde16bcc70f28c9f904056491e4ff5 [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."$ifname" prefix= x= pid=
rm -f "$cf"
echo "$signature" > "$cf"
if [ -n "$new_nis_domain" ]; then
if ! valid_domainname "$new_nis_domain"; then
syslog err "Invalid NIS domain name: $new_nis_domain"
rm -f "$cf"
return 1
fi
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
cat "$cf" > /etc/yp.conf
rm -f "$cf"
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
}
if $if_up; then
make_yp_conf
elif $if_down; then
restore_yp_conf
fi