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