Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 2 Dec 2004 21:22:38 GMT
From:      Sam Leffler <sam@FreeBSD.org>
To:        Perforce Change Reviews <perforce@freebsd.org>
Subject:   PERFORCE change 66276 for review
Message-ID:  <200412022122.iB2LMcVC008658@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=66276

Change 66276 by sam@sam_ebb on 2004/12/02 21:21:44

	make things more like old script:
	o use logger for diagnostics
	o delete old_routers instead of assuming a single default route
	o check if default route is ours when clearing old_routers
	o selectively remove arp entries instead of flushing everything

Affected files ...

.. //depot/projects/wifi/sbin/dhclient/dhclient-script#2 edit

Differences ...

==== //depot/projects/wifi/sbin/dhclient/dhclient-script#2 (text+ko) ====

@@ -18,6 +18,16 @@
 #
 #
 
+NETSTAT=/usr/bin/netstat
+GREP=/usr/bin/grep
+AWK=/usr/bin/awk
+
+if [ -x /usr/bin/logger ]; then
+	LOGGER="/usr/bin/logger -s -p user.notice -t dhclient"
+else
+	LOGGER=echo
+fi
+
 #
 # Helper functions that implement common actions.
 #
@@ -56,9 +66,11 @@
 }
 
 delete_old_routes() {
-	# Delete existing default route. We only allow one, so no need to
-	# process $old_routers list.
-	route delete default >/dev/null 2>&1
+	for router in $old_routers; do
+		if [ $if_defaultroute = x -o $if_defaultroute = $interface ]; then
+			route delete default $route >/dev/null 2>&1
+		fi
+	done
 
 	if [ -n "$old_static_routes" ]; then
 		set $old_static_routes
@@ -68,7 +80,8 @@
 		done
 	fi
 
-	arp -dan
+	arp -an | sed -n -e 's/^.*(\(.*\)) at .*$/arp -d \1/p' | \
+		sh >/dev/null 2>&1
 }
 
 add_new_routes() {
@@ -142,11 +155,17 @@
 #
 
 if [ -n "$new_network_number" ]; then
-	echo "New Network Number: $new_network_number"
+	$LOGGER "New Network Number: $new_network_number"
 fi
 
 if [ -n "$new_broadcast_address" ]; then
-	echo "New Broadcast Address: $new_broadcast_address"
+	$LOGGER "New Broadcast Address: $new_broadcast_address"
+fi
+
+if [ -x $NETSTAT ]; then
+	if_defaulroute=`$NETSTAT -rn | $GREP "^default" | $AWK '{print $6}'`
+else
+	if_defaultroute="x"
 fi
 
 case $reason in



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200412022122.iB2LMcVC008658>