56 lines
1.1 KiB
Text
56 lines
1.1 KiB
Text
# 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
|