diff options
Diffstat (limited to 'contrib/isc-dhcp/client/scripts/freebsd')
-rwxr-xr-x | contrib/isc-dhcp/client/scripts/freebsd | 67 |
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 |