annotate hooks/50-yp.conf @ 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 Linux version.
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_pid()
98da4513d0af Move dhcpcd-hooks dir to hooks
Roy Marples <roy@marples.name>
parents:
diff changeset
5 {
98da4513d0af Move dhcpcd-hooks dir to hooks
Roy Marples <roy@marples.name>
parents:
diff changeset
6 [ -s /var/run/ypbind.pid ] && cat /var/run/ypbind.pid
98da4513d0af Move dhcpcd-hooks dir to hooks
Roy Marples <roy@marples.name>
parents:
diff changeset
7 }
98da4513d0af Move dhcpcd-hooks dir to hooks
Roy Marples <roy@marples.name>
parents:
diff changeset
8
98da4513d0af Move dhcpcd-hooks dir to hooks
Roy Marples <roy@marples.name>
parents:
diff changeset
9 make_yp_conf()
98da4513d0af Move dhcpcd-hooks dir to hooks
Roy Marples <roy@marples.name>
parents:
diff changeset
10 {
4322
0b2abe4e9d2e hooks: shell [ ] only supports 4 parameters
Roy Marples <roy@marples.name>
parents: 4215
diff changeset
11 [ -z "${new_nis_domain}${new_nis_servers}" ] && return 0
4215
e323d30f279e dhcpcd-run-hooks: POSIX shell does not require the local builtin
Roy Marples <roy@marples.name>
parents: 3936
diff changeset
12 cf=/etc/yp.conf."$ifname"
3936
98da4513d0af Move dhcpcd-hooks dir to hooks
Roy Marples <roy@marples.name>
parents:
diff changeset
13 rm -f "$cf"
98da4513d0af Move dhcpcd-hooks dir to hooks
Roy Marples <roy@marples.name>
parents:
diff changeset
14 echo "$signature" > "$cf"
4215
e323d30f279e dhcpcd-run-hooks: POSIX shell does not require the local builtin
Roy Marples <roy@marples.name>
parents: 3936
diff changeset
15 prefix=
3936
98da4513d0af Move dhcpcd-hooks dir to hooks
Roy Marples <roy@marples.name>
parents:
diff changeset
16 if [ -n "$new_nis_domain" ]; then
98da4513d0af Move dhcpcd-hooks dir to hooks
Roy Marples <roy@marples.name>
parents:
diff changeset
17 if ! valid_domainname "$new_nis_domain"; then
98da4513d0af Move dhcpcd-hooks dir to hooks
Roy Marples <roy@marples.name>
parents:
diff changeset
18 syslog err "Invalid NIS domain name: $new_nis_domain"
98da4513d0af Move dhcpcd-hooks dir to hooks
Roy Marples <roy@marples.name>
parents:
diff changeset
19 rm -f "$cf"
98da4513d0af Move dhcpcd-hooks dir to hooks
Roy Marples <roy@marples.name>
parents:
diff changeset
20 return 1
98da4513d0af Move dhcpcd-hooks dir to hooks
Roy Marples <roy@marples.name>
parents:
diff changeset
21 fi
98da4513d0af Move dhcpcd-hooks dir to hooks
Roy Marples <roy@marples.name>
parents:
diff changeset
22 domainname "$new_nis_domain"
98da4513d0af Move dhcpcd-hooks dir to hooks
Roy Marples <roy@marples.name>
parents:
diff changeset
23 if [ -n "$new_nis_servers" ]; then
98da4513d0af Move dhcpcd-hooks dir to hooks
Roy Marples <roy@marples.name>
parents:
diff changeset
24 prefix="domain $new_nis_domain server "
98da4513d0af Move dhcpcd-hooks dir to hooks
Roy Marples <roy@marples.name>
parents:
diff changeset
25 else
98da4513d0af Move dhcpcd-hooks dir to hooks
Roy Marples <roy@marples.name>
parents:
diff changeset
26 echo "domain $new_nis_domain broadcast" >> "$cf"
98da4513d0af Move dhcpcd-hooks dir to hooks
Roy Marples <roy@marples.name>
parents:
diff changeset
27 fi
98da4513d0af Move dhcpcd-hooks dir to hooks
Roy Marples <roy@marples.name>
parents:
diff changeset
28 else
98da4513d0af Move dhcpcd-hooks dir to hooks
Roy Marples <roy@marples.name>
parents:
diff changeset
29 prefix="ypserver "
98da4513d0af Move dhcpcd-hooks dir to hooks
Roy Marples <roy@marples.name>
parents:
diff changeset
30 fi
98da4513d0af Move dhcpcd-hooks dir to hooks
Roy Marples <roy@marples.name>
parents:
diff changeset
31 for x in $new_nis_servers; do
98da4513d0af Move dhcpcd-hooks dir to hooks
Roy Marples <roy@marples.name>
parents:
diff changeset
32 echo "$prefix$x" >> "$cf"
98da4513d0af Move dhcpcd-hooks dir to hooks
Roy Marples <roy@marples.name>
parents:
diff changeset
33 done
98da4513d0af Move dhcpcd-hooks dir to hooks
Roy Marples <roy@marples.name>
parents:
diff changeset
34 save_conf /etc/yp.conf
98da4513d0af Move dhcpcd-hooks dir to hooks
Roy Marples <roy@marples.name>
parents:
diff changeset
35 cat "$cf" > /etc/yp.conf
98da4513d0af Move dhcpcd-hooks dir to hooks
Roy Marples <roy@marples.name>
parents:
diff changeset
36 rm -f "$cf"
98da4513d0af Move dhcpcd-hooks dir to hooks
Roy Marples <roy@marples.name>
parents:
diff changeset
37 pid="$(ypbind_pid)"
98da4513d0af Move dhcpcd-hooks dir to hooks
Roy Marples <roy@marples.name>
parents:
diff changeset
38 if [ -n "$pid" ]; then
98da4513d0af Move dhcpcd-hooks dir to hooks
Roy Marples <roy@marples.name>
parents:
diff changeset
39 kill -HUP "$pid"
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 }
98da4513d0af Move dhcpcd-hooks dir to hooks
Roy Marples <roy@marples.name>
parents:
diff changeset
42
98da4513d0af Move dhcpcd-hooks dir to hooks
Roy Marples <roy@marples.name>
parents:
diff changeset
43 restore_yp_conf()
98da4513d0af Move dhcpcd-hooks dir to hooks
Roy Marples <roy@marples.name>
parents:
diff changeset
44 {
98da4513d0af Move dhcpcd-hooks dir to hooks
Roy Marples <roy@marples.name>
parents:
diff changeset
45 [ -n "$old_nis_domain" ] && domainname ""
98da4513d0af Move dhcpcd-hooks dir to hooks
Roy Marples <roy@marples.name>
parents:
diff changeset
46 restore_conf /etc/yp.conf || return 0
4215
e323d30f279e dhcpcd-run-hooks: POSIX shell does not require the local builtin
Roy Marples <roy@marples.name>
parents: 3936
diff changeset
47 pid="$(ypbind_pid)"
3936
98da4513d0af Move dhcpcd-hooks dir to hooks
Roy Marples <roy@marples.name>
parents:
diff changeset
48 if [ -n "$pid" ]; then
98da4513d0af Move dhcpcd-hooks dir to hooks
Roy Marples <roy@marples.name>
parents:
diff changeset
49 kill -HUP "$pid"
98da4513d0af Move dhcpcd-hooks dir to hooks
Roy Marples <roy@marples.name>
parents:
diff changeset
50 fi
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
5535
a0d828e25482 Add --noconfigure option
Roy Marples <roy@marples.name>
parents: 4322
diff changeset
53 if $if_configured; then
a0d828e25482 Add --noconfigure option
Roy Marples <roy@marples.name>
parents: 4322
diff changeset
54 if $if_up; then
a0d828e25482 Add --noconfigure option
Roy Marples <roy@marples.name>
parents: 4322
diff changeset
55 make_yp_conf
a0d828e25482 Add --noconfigure option
Roy Marples <roy@marples.name>
parents: 4322
diff changeset
56 elif $if_down; then
a0d828e25482 Add --noconfigure option
Roy Marples <roy@marples.name>
parents: 4322
diff changeset
57 restore_yp_conf
a0d828e25482 Add --noconfigure option
Roy Marples <roy@marples.name>
parents: 4322
diff changeset
58 fi
3936
98da4513d0af Move dhcpcd-hooks dir to hooks
Roy Marples <roy@marples.name>
parents:
diff changeset
59 fi