Home | History | Annotate | Download | only in dhcpcd-hooks
      1 # Sample dhcpcd hook for ypbind
      2 # This script is only suitable for the Linux version.
      3 
      4 ypbind_pid()
      5 {
      6 	[ -s /var/run/ypbind.pid ] && cat /var/run/ypbind.pid
      7 }
      8 
      9 make_yp_conf()
     10 {
     11 	[ -z "$new_nis_domain" -a -z "$new_nis_servers" ] && return 0
     12 	local cf=/etc/yp.conf."$ifname" prefix= x= pid=
     13 	rm -f "$cf"
     14 	echo "$signature" > "$cf"
     15 	if [ -n "$new_nis_domain" ]; then
     16 		if ! valid_domainname "$new_nis_domain"; then
     17 			syslog err "Invalid NIS domain name: $new_nis_domain"
     18 			rm -f "$cf"
     19 			return 1
     20 		fi
     21 		domainname "$new_nis_domain"
     22 		if [ -n "$new_nis_servers" ]; then
     23 			prefix="domain $new_nis_domain server "
     24 		else
     25 			echo "domain $new_nis_domain broadcast" >> "$cf"
     26 		fi
     27 	else
     28 		prefix="ypserver "
     29 	fi
     30 	for x in $new_nis_servers; do
     31 		echo "$prefix$x" >> "$cf"
     32 	done
     33 	save_conf /etc/yp.conf
     34 	cat "$cf" > /etc/yp.conf
     35 	rm -f "$cf"
     36 	pid="$(ypbind_pid)"
     37 	if [ -n "$pid" ]; then
     38 		kill -HUP "$pid"
     39 	fi
     40 }
     41 
     42 restore_yp_conf()
     43 {
     44 	[ -n "$old_nis_domain" ] && domainname ""
     45 	restore_conf /etc/yp.conf || return 0
     46 	local pid="$(ypbind_pid)"
     47 	if [ -n "$pid" ]; then
     48 		kill -HUP "$pid"
     49 	fi
     50 }
     51 
     52 if $if_up; then
     53 	make_yp_conf
     54 elif $if_down; then
     55 	restore_yp_conf
     56 fi
     57