Module Name:    src
Committed By:   christos
Date:           Sat Apr 20 18:24:18 UTC 2013

Modified Files:
        src/etc/rc.d: network

Log Message:
don't attempt to create interfaces that exist and don't hide errors.


To generate a diff of this commit:
cvs rdiff -u -r1.62 -r1.63 src/etc/rc.d/network

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/etc/rc.d/network
diff -u src/etc/rc.d/network:1.62 src/etc/rc.d/network:1.63
--- src/etc/rc.d/network:1.62	Fri Nov  2 04:36:13 2012
+++ src/etc/rc.d/network	Sat Apr 20 14:24:18 2013
@@ -1,6 +1,6 @@
 #!/bin/sh
 #
-# $NetBSD: network,v 1.62 2012/11/02 08:36:13 yamt Exp $
+# $NetBSD: network,v 1.63 2013/04/20 18:24:18 christos Exp $
 #
 
 # PROVIDE: network
@@ -16,6 +16,18 @@ stop_cmd="network_stop"
 nl='
 ' # a newline
 
+intmissing() {
+	local int="$1"
+	shift
+	for i
+	do
+		if [ "$int" = "$i" ]; then
+			return 1
+		fi
+	done
+	return 0
+}
+
 network_start()
 {
 	# set hostname, turn on network
@@ -190,9 +202,10 @@ network_start()
 	# starting a line with "!".  Refer to ifconfig.if(5) for details.
 	#
 	if [ "$net_interfaces" != NO ]; then
+		ifaces="$(/sbin/ifconfig -l)"
 		if checkyesno auto_ifconfig; then
-			tmp=$(/sbin/ifconfig -l)
-			for cloner in $(/sbin/ifconfig -C 2>/dev/null); do
+			tmp="$ifaces"
+			for cloner in $(/sbin/ifconfig -C); do
 				for int in /etc/ifconfig.${cloner}[0-9]*; do
 					[ ! -f $int ] && break
 					tmp="$tmp ${int##*.}"
@@ -226,9 +239,11 @@ network_start()
 			# If the interface did not exist before,
 			# then also resync ipf(4).
 			#
-			if /sbin/ifconfig $int create 2>/dev/null && \
-			   checkyesno ipfilter; then
-				/sbin/ipf -y >/dev/null
+			if intmissing $int $ifaces; then
+				if /sbin/ifconfig $int create && \
+				   checkyesno ipfilter; then
+					/sbin/ipf -y >/dev/null
+				fi
 			fi
 
 			# If $ifconfig_xxN is empty, then use

Reply via email to