our dhclient-script diverged too much from the distributed one,
keep it separate
This commit is contained in:
parent
102df4197d
commit
96914bd8e8
|
@ -1,9 +1,8 @@
|
|||
# $NetBSD: Makefile,v 1.1 2001/08/03 14:14:00 drochner Exp $
|
||||
# $NetBSD: Makefile,v 1.2 2001/08/03 14:30:19 drochner Exp $
|
||||
|
||||
SCRIPTS=netbsd
|
||||
SCRIPTSNAME_netbsd=dhclient-script
|
||||
SCRIPTS=dhclient-script
|
||||
SCRIPTSDIR=/sbin
|
||||
|
||||
DHCPSRCDIR= client/scripts
|
||||
NOOBJ=
|
||||
|
||||
.include <bsd.prog.mk>
|
||||
|
|
|
@ -0,0 +1,259 @@
|
|||
#!/bin/sh
|
||||
#
|
||||
# $NetBSD: dhclient-script,v 1.1 2001/08/03 14:30:19 drochner Exp $
|
||||
|
||||
ENTERHOOKS=/etc/dhclient-enter-hooks
|
||||
EXITHOOKS=/etc/dhclient-exit-hooks
|
||||
RESOLV=/etc/resolv.conf
|
||||
|
||||
make_resolv_conf() {
|
||||
if [ \( ! -z "$new_domain_name" \) -a \
|
||||
\( ! -z "$new_domain_name_servers" \) ]; then
|
||||
echo search $new_domain_name > $RESOLV
|
||||
for nameserver in $new_domain_name_servers; do
|
||||
echo nameserver $nameserver
|
||||
done >> $RESOLV
|
||||
fi
|
||||
}
|
||||
|
||||
# Must be used on exit. Invokes the local dhcp client exit hooks, if any.
|
||||
exit_with_hooks() {
|
||||
exit_status=$1
|
||||
if [ -f "$EXITHOOKS" ]; then
|
||||
. "$EXITHOOKS"
|
||||
fi
|
||||
# probably should do something with exit status of the local script
|
||||
exit $exit_status
|
||||
}
|
||||
|
||||
|
||||
add_new_routes() {
|
||||
for router in $new_routers; do
|
||||
route add default $router
|
||||
done >/dev/null 2>&1
|
||||
|
||||
set -- $new_static_routes
|
||||
while [ $# -gt 1 ]; do
|
||||
route add $0 $1
|
||||
shift; shift
|
||||
done
|
||||
}
|
||||
|
||||
delete_old_routes() {
|
||||
for router in $old_routers; do
|
||||
route delete default $router
|
||||
done >/dev/null 2>&1
|
||||
|
||||
set -- $old_static_routes
|
||||
while [ $# -gt 1 ]; do
|
||||
route delete $1 $2
|
||||
shift; shift
|
||||
done
|
||||
|
||||
arp -n -a | sed -n -e 's/^.*(\(.*\)) at .*$/arp -n -d \1/p' | sh
|
||||
}
|
||||
|
||||
# Invoke the local dhcp client enter hooks, if they exist.
|
||||
if [ -f $ENTERHOOKS ]; then
|
||||
exit_status=0
|
||||
. $ENTERHOOKS
|
||||
# allow the local script to abort processing of this state
|
||||
# local script must set exit_status variable to nonzero.
|
||||
if [ $exit_status -ne 0 ]; then
|
||||
exit $exit_status
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ ! -z "$new_host_name" ]; then
|
||||
echo New Host Name: $new_host_name
|
||||
fi
|
||||
|
||||
if [ ! -z "$new_nis_domain" ]; then
|
||||
echo New NIS Domain: $new_nis_domain
|
||||
fi
|
||||
|
||||
if [ ! -z "$new_network_number" ]; then
|
||||
echo New Network Number: $new_network_number
|
||||
fi
|
||||
|
||||
if [ ! -z "$new_broadcast_address" ]; then
|
||||
echo New Broadcast Address: $new_broadcast_address
|
||||
new_broadcast_arg="broadcast $new_broadcast_address"
|
||||
fi
|
||||
|
||||
if [ ! -z "$old_broadcast_address" ]; then
|
||||
old_broadcast_arg="broadcast $old_broadcast_address"
|
||||
fi
|
||||
|
||||
if [ ! -z "$new_subnet_mask" ]; then
|
||||
new_netmask_arg="netmask $new_subnet_mask"
|
||||
fi
|
||||
|
||||
if [ ! -z "$old_subnet_mask" ]; then
|
||||
old_netmask_arg="netmask $old_subnet_mask"
|
||||
fi
|
||||
|
||||
if [ ! -z "$alias_subnet_mask" ]; then
|
||||
alias_subnet_arg="netmask $alias_subnet_mask"
|
||||
fi
|
||||
|
||||
case "$reason" in
|
||||
MEDIUM)
|
||||
eval "ifconfig $interface $medium"
|
||||
eval "ifconfig $interface inet -alias 0.0.0.0 $medium" >/dev/null 2>&1
|
||||
|
||||
sleep 1
|
||||
|
||||
exit_with_hooks 0
|
||||
;;
|
||||
|
||||
PREINIT)
|
||||
if [ ! -z "$alias_ip_address" ]; then
|
||||
ifconfig $interface inet \
|
||||
-alias $alias_ip_address >/dev/null 2>&1
|
||||
route delete $alias_ip_address 127.0.0.1 > /dev/null 2>&1
|
||||
fi
|
||||
|
||||
ifconfig $interface inet 0.0.0.0 netmask 0.0.0.0 \
|
||||
broadcast 255.255.255.255 up
|
||||
|
||||
exit_with_hooks 0
|
||||
;;
|
||||
|
||||
ARPCHECK|ARPSEND)
|
||||
exit_with_hooks 0
|
||||
;;
|
||||
|
||||
BOUND|RENEW|REBIND|REBOOT)
|
||||
if [ ! -z "$new_nis_domain" ]; then
|
||||
if type domainname > /dev/null 2>&1; then
|
||||
domainname $new_nis_domain
|
||||
fi
|
||||
fi
|
||||
|
||||
if type hostname > /dev/null 2>&1; then
|
||||
if [ \( -z "$current_hostname" \) -o \
|
||||
\( "x$new_host_name" = "x$old_hostname" \) ]; then
|
||||
current_hostname=`hostname`
|
||||
fi
|
||||
if [ \( -z "$current_hostname" \) -o \
|
||||
\( "x$new_host_name" != "x$old_hostname" \) ]; then
|
||||
hostname $new_host_name
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ \( ! -z "$old_ip_address" \) -a \( ! -z "$alias_ip_address" \) -a \
|
||||
\( "x$alias_ip_address" != "x$old_ip_address" \) ]; then
|
||||
ifconfig $interface inet \
|
||||
-alias $alias_ip_address > /dev/null 2>&1
|
||||
route delete $alias_ip_address 127.0.0.1 > /dev/null 2>&1
|
||||
fi
|
||||
|
||||
if [ \( ! -z "$old_ip_address" \) -a \
|
||||
\( "x$old_ip_address" != "x$new_ip_address" \) ]; then
|
||||
eval "ifconfig $interface inet -alias $old_ip_address $medium"
|
||||
route delete $old_ip_address 127.0.0.1 >/dev/null 2>&1
|
||||
|
||||
delete_old_routes
|
||||
fi
|
||||
|
||||
if [ \( -z "$old_ip_address" \) -o \
|
||||
\( "x$old_ip_address" != "x$new_ip_address" \) -o \
|
||||
\( "x$reason" = "xBOUND" \) -o \( "x$reason" = "xREBOOT" \) ]; then
|
||||
eval "ifconfig $interface inet $new_ip_address \
|
||||
$new_netmask_arg $new_broadcast_arg $medium"
|
||||
route add $new_ip_address 127.0.0.1 >/dev/null 2>&1
|
||||
|
||||
add_new_routes
|
||||
fi
|
||||
|
||||
if [ \( ! -z "$alias_ip_address" \) -a \
|
||||
\( "x$new_ip_address" != "x$alias_ip_address" \) ]; then
|
||||
ifconfig $interface inet alias $alias_ip_address \
|
||||
$alias_subnet_arg
|
||||
route add $alias_ip_address 127.0.0.1
|
||||
fi
|
||||
make_resolv_conf
|
||||
exit_with_hooks 0
|
||||
;;
|
||||
|
||||
EXPIRE|FAIL|RELEASE|STOP)
|
||||
if [ ! -z "$old_nis_domain" ]; then
|
||||
if type domainname > /dev/null 2>&1; then
|
||||
# delete the old nis domain name
|
||||
domainname ""
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ ! -z "$alias_ip_address" ]; then
|
||||
ifconfig $interface inet -alias $alias_ip_address
|
||||
route delete $alias_ip_address 127.0.0.1
|
||||
fi > /dev/null 2>&1
|
||||
|
||||
if [ ! -z "$old_ip_address" ]; then
|
||||
eval "ifconfig $interface inet -alias $old_ip_address $medium"
|
||||
route delete $old_ip_address 127.0.0.1 >/dev/null 2>&1
|
||||
delete_old_routes
|
||||
|
||||
fi
|
||||
|
||||
if [ ! -z "$alias_ip_address" ]; then
|
||||
ifconfig $interface inet alias $alias_ip_address \
|
||||
$alias_subnet_arg
|
||||
route add $alias_ip_address 127.0.0.1
|
||||
fi
|
||||
|
||||
exit_with_hooks 0
|
||||
;;
|
||||
|
||||
TIMEOUT)
|
||||
if [ ! -z "$alias_ip_address" ]; then
|
||||
ifconfig $interface inet -alias $alias_ip_address
|
||||
route delete $alias_ip_address 127.0.0.1
|
||||
fi > /dev/null 2>&1
|
||||
|
||||
if [ ! -z "$new_host_name" ]; then
|
||||
if type hostname > /dev/null 2>&1; then
|
||||
hostname $new_host_name
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ ! -z "$new_nis_domain" ]; then
|
||||
if type domainname > /dev/null 2>&1; then
|
||||
domainname $new_nis_domain
|
||||
fi
|
||||
fi
|
||||
|
||||
eval "ifconfig $interface inet $new_ip_address $new_netmask_arg \
|
||||
$new_broadcast_arg $medium"
|
||||
sleep 1
|
||||
|
||||
if [ ! -z "$new_routers" ]; then
|
||||
set -- $new_routers
|
||||
if ping -n -q -c 1 -w 1 $1; then
|
||||
if [ \( ! -z "$alias_ip_address" \) -a \
|
||||
\( "x$new_ip_address" != "x$alias_ip_address" \) ]
|
||||
then
|
||||
ifconfig $interface inet alias \
|
||||
$alias_ip_address $alias_subnet_arg
|
||||
route add $alias_ip_address 127.0.0.1
|
||||
fi
|
||||
|
||||
route add $new_ip_address 127.0.0.1 >/dev/null 2>&1
|
||||
|
||||
add_new_routes
|
||||
make_resolv_conf
|
||||
exit_with_hooks 0
|
||||
fi
|
||||
fi
|
||||
|
||||
eval "ifconfig $interface inet -alias $new_ip_address $medium"
|
||||
|
||||
delete_old_routes
|
||||
|
||||
exit_with_hooks 1
|
||||
;;
|
||||
*)
|
||||
exit_with_hooks 0
|
||||
;;
|
||||
esac
|
Loading…
Reference in New Issue