mirror of
https://git.rtems.org/rtems-libbsd/
synced 2025-06-05 13:42:00 +08:00

Import DHCPCD(8) from: http://roy.marples.name/projects/dhcpcd/ The upstream sources can be obtained via: fossil clone http://roy.marples.name/projects/dhcpcd The imported version is 2014-01-29 19:46:44 [6b209507bb].
79 lines
1.7 KiB
Plaintext
79 lines
1.7 KiB
Plaintext
# Sample dhcpcd hook for ypbind
|
|
# This script is only suitable for the Linux version.
|
|
|
|
: ${ypbind_restart_cmd:=service_command ypbind restart}
|
|
: ${ypbind_stop_cmd:=service_condcommand ypbind stop}
|
|
ypbind_dir="$state_dir/ypbind"
|
|
|
|
best_domain()
|
|
{
|
|
local i=
|
|
|
|
for i in $interfaces; do
|
|
if [ -e "$ypbind_dir/$i" ]; then
|
|
cat "$ypbind_dir/$i"
|
|
fi
|
|
done
|
|
return 1
|
|
}
|
|
|
|
make_yp_binding()
|
|
{
|
|
[ -d "$ypbind_dir" ] || mkdir -p "$ypbind_dir"
|
|
echo "$new_nis_domain" >"$ypbind_dir/$ifname"
|
|
local nd="$(best_domain)"
|
|
|
|
local cf=/var/yp/binding/"$new_nis_domain".ypservers
|
|
if [ -n "$new_nis_servers" ]; then
|
|
local ncf="$cf.$ifname" x=
|
|
rm -f "$ncf"
|
|
for x in $new_nis_servers; do
|
|
echo "$x" >>"$ncf"
|
|
done
|
|
change_file "$cf" "$ncf"
|
|
else
|
|
# Because this is not an if .. fi then we can use $? below
|
|
[ -e "$cf" ] && rm "$cf"
|
|
fi
|
|
|
|
if [ $? = 0 -o "$nd" != "$(domainname)" ]; then
|
|
domainname "$nd"
|
|
if [ -n "$ypbind_restart_cmd" ]; then
|
|
eval $ypbind_restart_cmd
|
|
fi
|
|
fi
|
|
}
|
|
|
|
restore_yp_binding()
|
|
{
|
|
rm -f "$ypbind_dir/$ifname"
|
|
local nd="$(best_domain)"
|
|
# We need to stop ypbind if there is no best domain
|
|
# otherwise it will just stall as we cannot set domainname
|
|
# to blank :/
|
|
if [ -z "$nd" ]; then
|
|
if [ -n "$ypbind_stop_cmd" ]; then
|
|
eval $ypbind_stop_cmd
|
|
fi
|
|
elif [ "$nd" != "$(domainname)" ]; then
|
|
domainname "$nd"
|
|
if [ -n "$ypbind_restart_cmd" ]; then
|
|
eval $ypbind_restart_cmd
|
|
fi
|
|
fi
|
|
}
|
|
|
|
if [ "$reason" = PREINIT ]; then
|
|
rm -f "$ypbind_dir/$ifname"
|
|
elif $if_up || $if_down; then
|
|
if [ -n "$new_nis_domain" ]; then
|
|
if valid_domainname "$new_nis_domain"; then
|
|
make_yp_binding
|
|
else
|
|
syslog err "Invalid NIS domain name: $new_nis_domain"
|
|
fi
|
|
elif [ -n "$old_nis_domain" ]; then
|
|
restore_yp_binding
|
|
fi
|
|
fi
|