| # 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 |