diff options
Diffstat (limited to 'dhcpcd-hooks/50-yp.conf')
-rw-r--r-- | dhcpcd-hooks/50-yp.conf | 44 |
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 |