annotate hooks/50-ypbind.in @ 5535:a0d828e25482 draft

Add --noconfigure option With this set dhcpcd will not configure anything on the host. The expectation is that a 3rd party script will instead.
author Roy Marples <roy@marples.name>
date Wed, 04 Nov 2020 14:18:48 +0000
parents 0b2abe4e9d2e
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
3936
98da4513d0af Move dhcpcd-hooks dir to hooks
Roy Marples <roy@marples.name>
parents:
diff changeset
1 # Sample dhcpcd hook for ypbind
98da4513d0af Move dhcpcd-hooks dir to hooks
Roy Marples <roy@marples.name>
parents:
diff changeset
2 # This script is only suitable for the BSD versions.
98da4513d0af Move dhcpcd-hooks dir to hooks
Roy Marples <roy@marples.name>
parents:
diff changeset
3
98da4513d0af Move dhcpcd-hooks dir to hooks
Roy Marples <roy@marples.name>
parents:
diff changeset
4 : ${ypbind_restart_cmd:=service_command ypbind restart}
98da4513d0af Move dhcpcd-hooks dir to hooks
Roy Marples <roy@marples.name>
parents:
diff changeset
5 : ${ypbind_stop_cmd:=service_condcommand ypbind stop}
98da4513d0af Move dhcpcd-hooks dir to hooks
Roy Marples <roy@marples.name>
parents:
diff changeset
6 ypbind_dir="$state_dir/ypbind"
98da4513d0af Move dhcpcd-hooks dir to hooks
Roy Marples <roy@marples.name>
parents:
diff changeset
7 : ${ypdomain_dir:=@YPDOMAIN_DIR@}
98da4513d0af Move dhcpcd-hooks dir to hooks
Roy Marples <roy@marples.name>
parents:
diff changeset
8 : ${ypdomain_suffix:=@YPDOMAIN_SUFFIX@}
98da4513d0af Move dhcpcd-hooks dir to hooks
Roy Marples <roy@marples.name>
parents:
diff changeset
9
98da4513d0af Move dhcpcd-hooks dir to hooks
Roy Marples <roy@marples.name>
parents:
diff changeset
10
98da4513d0af Move dhcpcd-hooks dir to hooks
Roy Marples <roy@marples.name>
parents:
diff changeset
11 best_domain()
98da4513d0af Move dhcpcd-hooks dir to hooks
Roy Marples <roy@marples.name>
parents:
diff changeset
12 {
98da4513d0af Move dhcpcd-hooks dir to hooks
Roy Marples <roy@marples.name>
parents:
diff changeset
13 for i in "$ypbind_dir/$interface_order".*; do
98da4513d0af Move dhcpcd-hooks dir to hooks
Roy Marples <roy@marples.name>
parents:
diff changeset
14 if [ -f "$i" ]; then
98da4513d0af Move dhcpcd-hooks dir to hooks
Roy Marples <roy@marples.name>
parents:
diff changeset
15 cat "$i"
98da4513d0af Move dhcpcd-hooks dir to hooks
Roy Marples <roy@marples.name>
parents:
diff changeset
16 return 0
98da4513d0af Move dhcpcd-hooks dir to hooks
Roy Marples <roy@marples.name>
parents:
diff changeset
17 fi
98da4513d0af Move dhcpcd-hooks dir to hooks
Roy Marples <roy@marples.name>
parents:
diff changeset
18 done
98da4513d0af Move dhcpcd-hooks dir to hooks
Roy Marples <roy@marples.name>
parents:
diff changeset
19 return 1
98da4513d0af Move dhcpcd-hooks dir to hooks
Roy Marples <roy@marples.name>
parents:
diff changeset
20 }
98da4513d0af Move dhcpcd-hooks dir to hooks
Roy Marples <roy@marples.name>
parents:
diff changeset
21
98da4513d0af Move dhcpcd-hooks dir to hooks
Roy Marples <roy@marples.name>
parents:
diff changeset
22 make_yp_binding()
98da4513d0af Move dhcpcd-hooks dir to hooks
Roy Marples <roy@marples.name>
parents:
diff changeset
23 {
98da4513d0af Move dhcpcd-hooks dir to hooks
Roy Marples <roy@marples.name>
parents:
diff changeset
24 [ -d "$ypbind_dir" ] || mkdir -p "$ypbind_dir"
98da4513d0af Move dhcpcd-hooks dir to hooks
Roy Marples <roy@marples.name>
parents:
diff changeset
25 echo "$new_nis_domain" >"$ypbind_dir/$ifname"
98da4513d0af Move dhcpcd-hooks dir to hooks
Roy Marples <roy@marples.name>
parents:
diff changeset
26
98da4513d0af Move dhcpcd-hooks dir to hooks
Roy Marples <roy@marples.name>
parents:
diff changeset
27 if [ -z "$ypdomain_dir" ]; then
98da4513d0af Move dhcpcd-hooks dir to hooks
Roy Marples <roy@marples.name>
parents:
diff changeset
28 false
98da4513d0af Move dhcpcd-hooks dir to hooks
Roy Marples <roy@marples.name>
parents:
diff changeset
29 else
4215
e323d30f279e dhcpcd-run-hooks: POSIX shell does not require the local builtin
Roy Marples <roy@marples.name>
parents: 3936
diff changeset
30 cf="$ypdomain_dir/$new_nis_domain$ypdomain_suffix"
3936
98da4513d0af Move dhcpcd-hooks dir to hooks
Roy Marples <roy@marples.name>
parents:
diff changeset
31 if [ -n "$new_nis_servers" ]; then
4215
e323d30f279e dhcpcd-run-hooks: POSIX shell does not require the local builtin
Roy Marples <roy@marples.name>
parents: 3936
diff changeset
32 ncf="$cf.$ifname"
3936
98da4513d0af Move dhcpcd-hooks dir to hooks
Roy Marples <roy@marples.name>
parents:
diff changeset
33 rm -f "$ncf"
98da4513d0af Move dhcpcd-hooks dir to hooks
Roy Marples <roy@marples.name>
parents:
diff changeset
34 for x in $new_nis_servers; do
98da4513d0af Move dhcpcd-hooks dir to hooks
Roy Marples <roy@marples.name>
parents:
diff changeset
35 echo "$x" >>"$ncf"
98da4513d0af Move dhcpcd-hooks dir to hooks
Roy Marples <roy@marples.name>
parents:
diff changeset
36 done
98da4513d0af Move dhcpcd-hooks dir to hooks
Roy Marples <roy@marples.name>
parents:
diff changeset
37 change_file "$cf" "$ncf"
98da4513d0af Move dhcpcd-hooks dir to hooks
Roy Marples <roy@marples.name>
parents:
diff changeset
38 else
98da4513d0af Move dhcpcd-hooks dir to hooks
Roy Marples <roy@marples.name>
parents:
diff changeset
39 [ -e "$cf" ] && rm "$cf"
98da4513d0af Move dhcpcd-hooks dir to hooks
Roy Marples <roy@marples.name>
parents:
diff changeset
40 fi
98da4513d0af Move dhcpcd-hooks dir to hooks
Roy Marples <roy@marples.name>
parents:
diff changeset
41 fi
98da4513d0af Move dhcpcd-hooks dir to hooks
Roy Marples <roy@marples.name>
parents:
diff changeset
42
4215
e323d30f279e dhcpcd-run-hooks: POSIX shell does not require the local builtin
Roy Marples <roy@marples.name>
parents: 3936
diff changeset
43 nd="$(best_domain)"
4322
0b2abe4e9d2e hooks: shell [ ] only supports 4 parameters
Roy Marples <roy@marples.name>
parents: 4215
diff changeset
44 if [ $? = 0 ] && [ "$nd" != "$(domainname)" ]; then
3936
98da4513d0af Move dhcpcd-hooks dir to hooks
Roy Marples <roy@marples.name>
parents:
diff changeset
45 domainname "$nd"
98da4513d0af Move dhcpcd-hooks dir to hooks
Roy Marples <roy@marples.name>
parents:
diff changeset
46 if [ -n "$ypbind_restart_cmd" ]; then
98da4513d0af Move dhcpcd-hooks dir to hooks
Roy Marples <roy@marples.name>
parents:
diff changeset
47 eval $ypbind_restart_cmd
98da4513d0af Move dhcpcd-hooks dir to hooks
Roy Marples <roy@marples.name>
parents:
diff changeset
48 fi
98da4513d0af Move dhcpcd-hooks dir to hooks
Roy Marples <roy@marples.name>
parents:
diff changeset
49 fi
98da4513d0af Move dhcpcd-hooks dir to hooks
Roy Marples <roy@marples.name>
parents:
diff changeset
50 }
98da4513d0af Move dhcpcd-hooks dir to hooks
Roy Marples <roy@marples.name>
parents:
diff changeset
51
98da4513d0af Move dhcpcd-hooks dir to hooks
Roy Marples <roy@marples.name>
parents:
diff changeset
52 restore_yp_binding()
98da4513d0af Move dhcpcd-hooks dir to hooks
Roy Marples <roy@marples.name>
parents:
diff changeset
53 {
98da4513d0af Move dhcpcd-hooks dir to hooks
Roy Marples <roy@marples.name>
parents:
diff changeset
54 rm -f "$ypbind_dir/$ifname"
4215
e323d30f279e dhcpcd-run-hooks: POSIX shell does not require the local builtin
Roy Marples <roy@marples.name>
parents: 3936
diff changeset
55 nd="$(best_domain)"
3936
98da4513d0af Move dhcpcd-hooks dir to hooks
Roy Marples <roy@marples.name>
parents:
diff changeset
56 # We need to stop ypbind if there is no best domain
98da4513d0af Move dhcpcd-hooks dir to hooks
Roy Marples <roy@marples.name>
parents:
diff changeset
57 # otherwise it will just stall as we cannot set domainname
98da4513d0af Move dhcpcd-hooks dir to hooks
Roy Marples <roy@marples.name>
parents:
diff changeset
58 # to blank :/
98da4513d0af Move dhcpcd-hooks dir to hooks
Roy Marples <roy@marples.name>
parents:
diff changeset
59 if [ -z "$nd" ]; then
98da4513d0af Move dhcpcd-hooks dir to hooks
Roy Marples <roy@marples.name>
parents:
diff changeset
60 if [ -n "$ypbind_stop_cmd" ]; then
98da4513d0af Move dhcpcd-hooks dir to hooks
Roy Marples <roy@marples.name>
parents:
diff changeset
61 eval $ypbind_stop_cmd
98da4513d0af Move dhcpcd-hooks dir to hooks
Roy Marples <roy@marples.name>
parents:
diff changeset
62 fi
98da4513d0af Move dhcpcd-hooks dir to hooks
Roy Marples <roy@marples.name>
parents:
diff changeset
63 elif [ "$nd" != "$(domainname)" ]; then
98da4513d0af Move dhcpcd-hooks dir to hooks
Roy Marples <roy@marples.name>
parents:
diff changeset
64 domainname "$nd"
98da4513d0af Move dhcpcd-hooks dir to hooks
Roy Marples <roy@marples.name>
parents:
diff changeset
65 if [ -n "$ypbind_restart_cmd" ]; then
98da4513d0af Move dhcpcd-hooks dir to hooks
Roy Marples <roy@marples.name>
parents:
diff changeset
66 eval $ypbind_restart_cmd
98da4513d0af Move dhcpcd-hooks dir to hooks
Roy Marples <roy@marples.name>
parents:
diff changeset
67 fi
98da4513d0af Move dhcpcd-hooks dir to hooks
Roy Marples <roy@marples.name>
parents:
diff changeset
68 fi
98da4513d0af Move dhcpcd-hooks dir to hooks
Roy Marples <roy@marples.name>
parents:
diff changeset
69 }
98da4513d0af Move dhcpcd-hooks dir to hooks
Roy Marples <roy@marples.name>
parents:
diff changeset
70
5535
a0d828e25482 Add --noconfigure option
Roy Marples <roy@marples.name>
parents: 4322
diff changeset
71 if ! $if_configured; then
a0d828e25482 Add --noconfigure option
Roy Marples <roy@marples.name>
parents: 4322
diff changeset
72 ;
a0d828e25482 Add --noconfigure option
Roy Marples <roy@marples.name>
parents: 4322
diff changeset
73 elif [ "$reason" = PREINIT ]; then
3936
98da4513d0af Move dhcpcd-hooks dir to hooks
Roy Marples <roy@marples.name>
parents:
diff changeset
74 rm -f "$ypbind_dir/$interface".*
98da4513d0af Move dhcpcd-hooks dir to hooks
Roy Marples <roy@marples.name>
parents:
diff changeset
75 elif $if_up || $if_down; then
98da4513d0af Move dhcpcd-hooks dir to hooks
Roy Marples <roy@marples.name>
parents:
diff changeset
76 if [ -n "$new_nis_domain" ]; then
98da4513d0af Move dhcpcd-hooks dir to hooks
Roy Marples <roy@marples.name>
parents:
diff changeset
77 if valid_domainname "$new_nis_domain"; then
98da4513d0af Move dhcpcd-hooks dir to hooks
Roy Marples <roy@marples.name>
parents:
diff changeset
78 make_yp_binding
98da4513d0af Move dhcpcd-hooks dir to hooks
Roy Marples <roy@marples.name>
parents:
diff changeset
79 else
98da4513d0af Move dhcpcd-hooks dir to hooks
Roy Marples <roy@marples.name>
parents:
diff changeset
80 syslog err "Invalid NIS domain name: $new_nis_domain"
98da4513d0af Move dhcpcd-hooks dir to hooks
Roy Marples <roy@marples.name>
parents:
diff changeset
81 fi
98da4513d0af Move dhcpcd-hooks dir to hooks
Roy Marples <roy@marples.name>
parents:
diff changeset
82 elif [ -n "$old_nis_domain" ]; then
98da4513d0af Move dhcpcd-hooks dir to hooks
Roy Marples <roy@marples.name>
parents:
diff changeset
83 restore_yp_binding
98da4513d0af Move dhcpcd-hooks dir to hooks
Roy Marples <roy@marples.name>
parents:
diff changeset
84 fi
98da4513d0af Move dhcpcd-hooks dir to hooks
Roy Marples <roy@marples.name>
parents:
diff changeset
85 fi