aboutsummaryrefslogtreecommitdiffstats
path: root/dhcpcd-hooks/50-yp.conf
diff options
context:
space:
mode:
Diffstat (limited to 'dhcpcd-hooks/50-yp.conf')
-rw-r--r--dhcpcd-hooks/50-yp.conf44
1 files changed, 23 insertions, 21 deletions
diff --git a/dhcpcd-hooks/50-yp.conf b/dhcpcd-hooks/50-yp.conf
index a2296eb..a1f5798 100644
--- a/dhcpcd-hooks/50-yp.conf
+++ b/dhcpcd-hooks/50-yp.conf
@@ -8,42 +8,44 @@ 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 "
+ [ -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}"
+ echo "domain $new_nis_domain broadcast" >> "$cf"
fi
else
prefix="ypserver "
fi
- for x in ${new_nis_servers}; do
- echo "${prefix}${x}" >> "${cf}"
+ for x in $new_nis_servers; do
+ echo "$prefix$x" >> "$cf"
done
save_conf /etc/yp.conf
- mv -f "${cf}" /etc/yp.conf
+ cat "$cf" > /etc/yp.conf
+ rm -f "$cf"
pid="$(ypbind_pid)"
- if [ -n "${pid}" ]; then
- kill -HUP "${pid}"
+ if [ -n "$pid" ]; then
+ kill -HUP "$pid"
fi
}
restore_yp_conf()
{
- [ -n "${old_nis_domain}" ] && domainname ""
+ [ -n "$old_nis_domain" ] && domainname ""
restore_conf /etc/yp.conf || return 0
local pid="$(ypbind_pid)"
- if [ -n "${pid}" ]; then
- kill -HUP "${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
+if $if_up; then
+ make_yp_conf
+elif $if_down; then
+ restore_yp_conf
+fi