summaryrefslogtreecommitdiff
path: root/contrib/isc-dhcp/client/scripts/freebsd
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/isc-dhcp/client/scripts/freebsd')
-rwxr-xr-xcontrib/isc-dhcp/client/scripts/freebsd67
1 files changed, 42 insertions, 25 deletions
diff --git a/contrib/isc-dhcp/client/scripts/freebsd b/contrib/isc-dhcp/client/scripts/freebsd
index ce7a1bf25fbb2..8ae2092bfc166 100755
--- a/contrib/isc-dhcp/client/scripts/freebsd
+++ b/contrib/isc-dhcp/client/scripts/freebsd
@@ -1,5 +1,13 @@
#!/bin/sh
+# $FreeBSD$
+
+if [ -x /usr/bin/logger ]; then
+ LOGGER="/usr/bin/logger -s -p user.notice -t dhclient"
+else
+ LOGGER=echo
+fi
+
make_resolv_conf() {
echo search $new_domain_name >/etc/resolv.conf
for nameserver in $new_domain_name_servers; do
@@ -28,12 +36,7 @@ if [ -x /etc/dhclient-enter-hooks ]; then
fi
fi
-if [ x$new_network_number != x ]; then
- echo New Network Number: $new_network_number
-fi
-
if [ x$new_broadcast_address != x ]; then
- echo New Broadcast Address: $new_broadcast_address
new_broadcast_arg="broadcast $new_broadcast_address"
fi
if [ x$old_broadcast_address != x ]; then
@@ -72,6 +75,14 @@ fi
if [ x$reason = xBOUND ] || [ x$reason = xRENEW ] || \
[ x$reason = xREBIND ] || [ x$reason = xREBOOT ]; then
+ current_hostname=`/bin/hostname`
+ if [ x$current_hostname = x ] || \
+ [ x$current_hostname = x$old_host_name ]; then
+ if [ x$new_host_name != x$old_host_name ]; then
+ $LOGGER "New Hostname: $new_host_name"
+ hostname $new_host_name
+ fi
+ fi
if [ x$old_ip_address != x ] && [ x$alias_ip_address != x ] && \
[ x$alias_ip_address != x$old_ip_address ]; then
ifconfig $interface inet -alias $alias_ip_address > /dev/null 2>&1
@@ -83,25 +94,31 @@ if [ x$reason = xBOUND ] || [ x$reason = xRENEW ] || \
for router in $old_routers; do
route delete default $router >/dev/null 2>&1
done
- if [ "$old_static_routes" != "" ]; then
- set $old_static_routes
+ if [ -n "$old_static_routes" ]; then
+ set -- $old_static_routes
while [ $# -gt 1 ]; do
route delete $1 $2
shift; shift
done
fi
- arp -n -a | sed -n -e 's/^.*(\(.*\)) at .*$/arp -n -d \1/p' |sh
+ arp -n -a | sed -n -e 's/^.*(\(.*\)) at .*$/arp -d \1/p' |sh
fi
if [ x$old_ip_address = x ] || [ x$old_ip_address != x$new_ip_address ] || \
[ x$reason = xBOUND ] || [ x$reason = xREBOOT ]; then
ifconfig $interface inet $new_ip_address $new_netmask_arg \
$new_broadcast_arg $medium
- route add $new_ip_address 127.1 >/dev/null 2>&1
+ $LOGGER "New IP Address($interface): $new_ip_address"
+ $LOGGER "New Subnet Mask ($interface): $new_subnet_mask"
+ $LOGGER "New Broadcast Address($interface): $new_broadcast_address"
+ if [ -n "$new_routers" ]; then
+ $LOGGER "New Routers: $new_routers"
+ fi
for router in $new_routers; do
route add default $router >/dev/null 2>&1
done
- if [ "$new_static_routes" != "" ]; then
- set $new_static_routes
+ if [ -n "$new_static_routes" ]; then
+ $LOGGER "New Static Routes: $new_static_routes"
+ set -- $new_static_routes
while [ $# -gt 1 ]; do
route add $1 $2
shift; shift
@@ -111,7 +128,6 @@ if [ x$reason = xBOUND ] || [ x$reason = xRENEW ] || \
if [ x$new_ip_address != x$alias_ip_address ] && [ x$alias_ip_address != x ];
then
ifconfig $interface inet alias $alias_ip_address $alias_subnet_arg
- route add $alias_ip_address 127.0.0.1
fi
echo search $new_domain_name >/etc/resolv.conf
for nameserver in $new_domain_name_servers; do
@@ -131,19 +147,18 @@ if [ x$reason = xEXPIRE ] || [ x$reason = xFAIL ]; then
for router in $old_routers; do
route delete default $router >/dev/null 2>&1
done
- if [ "$old_static_routes" != "" ]; then
- set $old_static_routes
+ if [ -n "$old_static_routes" ]; then
+ set -- $old_static_routes
while [ $# -gt 1 ]; do
route delete $1 $2
shift; shift
done
fi
- arp -n -a | sed -n -e 's/^.*(\(.*\)) at .*$/arp -n -d \1/p' \
+ arp -n -a | sed -n -e 's/^.*(\(.*\)) at .*$/arp -d \1/p' \
|sh >/dev/null 2>&1
fi
if [ x$alias_ip_address != x ]; 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
fi
@@ -155,22 +170,24 @@ if [ x$reason = xTIMEOUT ]; then
fi
ifconfig $interface inet $new_ip_address $new_netmask_arg \
$new_broadcast_arg $medium
+ $LOGGER "New IP Address($interface): $new_ip_address"
+ $LOGGER "New Subnet Mask($interface): $new_subnet_mask"
+ $LOGGER "New Broadcast Address($interface): $new_broadcast_address"
sleep 1
- if [ "$new_routers" != "" ]; then
- set $new_routers
+ if [ -n "$new_routers" ]; then
+ $LOGGER "New Routers: $new_routers"
+ set -- $new_routers
if ping -q -c 1 $1; then
if [ x$new_ip_address != x$alias_ip_address ] && \
[ x$alias_ip_address != x ]; 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.1 >/dev/null 2>&1
for router in $new_routers; do
route add default $router >/dev/null 2>&1
done
- set $new_static_routes
+ set -- $new_static_routes
while [ $# -gt 1 ]; do
- route add $0 $1
+ route add $1 $2
shift; shift
done
echo search $new_domain_name >/etc/resolv.conf.std
@@ -188,14 +205,14 @@ if [ x$reason = xTIMEOUT ]; then
for router in $old_routers; do
route delete default $router >/dev/null 2>&1
done
- if [ "$old_static_routes" != "" ]; then
- set $old_static_routes
+ if [ -n "$old_static_routes" ]; then
+ set -- $old_static_routes
while [ $# -gt 1 ]; do
route delete $1 $2
shift; shift
done
fi
- arp -n -a | sed -n -e 's/^.*(\(.*\)) at .*$/arp -n -d \1/p' \
+ arp -n -a | sed -n -e 's/^.*(\(.*\)) at .*$/arp -d \1/p' \
|sh >/dev/null 2>&1
exit_with_hooks 1
fi