From owner-p4-projects@FreeBSD.ORG Thu Dec 2 21:22:39 2004 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 240F516A4D0; Thu, 2 Dec 2004 21:22:39 +0000 (GMT) Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id EE32B16A4CE for ; Thu, 2 Dec 2004 21:22:38 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id DDC5543D5A for ; Thu, 2 Dec 2004 21:22:38 +0000 (GMT) (envelope-from sam@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id iB2LMcVg008661 for ; Thu, 2 Dec 2004 21:22:38 GMT (envelope-from sam@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id iB2LMcVC008658 for perforce@freebsd.org; Thu, 2 Dec 2004 21:22:38 GMT (envelope-from sam@freebsd.org) Date: Thu, 2 Dec 2004 21:22:38 GMT Message-Id: <200412022122.iB2LMcVC008658@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to sam@freebsd.org using -f From: Sam Leffler To: Perforce Change Reviews Subject: PERFORCE change 66276 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 02 Dec 2004 21:22:39 -0000 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