aboutsummaryrefslogtreecommitdiff
path: root/etc
diff options
context:
space:
mode:
authorWarner Losh <imp@FreeBSD.org>2002-12-11 23:30:34 +0000
committerWarner Losh <imp@FreeBSD.org>2002-12-11 23:30:34 +0000
commit39a61a1fda3c3dc2918be8a2f4d5dd5cddd98b79 (patch)
treee9c787e183b3e168a01de1d4e8e79ee97cefe3b9 /etc
parent549bfb9273706f3c3fa66ead739239b9f755971e (diff)
o Don't do anything if the interface is already up.
o Only delay in pccard_ether when we're doing dhcp and starting the interface. Approved: (re blanket for devd)
Notes
Notes: svn path=/head/; revision=107761
Diffstat (limited to 'etc')
-rwxr-xr-xetc/pccard_ether23
-rw-r--r--etc/rc.network5
2 files changed, 17 insertions, 11 deletions
diff --git a/etc/pccard_ether b/etc/pccard_ether
index f6a0e615e027..93c7ca522a8c 100755
--- a/etc/pccard_ether
+++ b/etc/pccard_ether
@@ -21,6 +21,13 @@ stop_dhcp() {
start_dhcp() {
stop_dhcp
+ case ${pccard_ether_delay} in
+ [Nn][Oo])
+ ;;
+ [0-9])
+ sleep ${pccard_ether_delay}
+ ;;
+ esac
if [ -x "${dhcp_program}" ]; then
if [ `basename ${dhcp_program}` = "dhclient" ]; then
pidfile="/var/run/dhclient.${interface}.pid"
@@ -46,17 +53,6 @@ shift
startstop=$1
shift
-case ${pccard_ether_delay} in
-[Nn][Oo])
- ;;
-[0-9])
- sleep ${pccard_ether_delay}
- ;;
-*) # Default until it has had a chance to make it to /etc/defaults/rc.conf
- sleep 5
- ;;
-esac
-
case ${pccard_ifconfig} in
[Nn][Oo] | '')
expr "${removable_interfaces}" : ".*${interface}" > /dev/null || exit 0
@@ -69,6 +65,11 @@ esac
case ${startstop} in
[Ss][Tt][Aa][Rr][Tt] | '')
+ if ifconfig ${interface} | grep -s UP,; then
+ # Interface is already up, so ignore it.
+ exit 0
+ fi
+
if [ -r /etc/start_if.${interface} ]; then
. /etc/start_if.${interface}
fi
diff --git a/etc/rc.network b/etc/rc.network
index 925876bbacca..3d6282f3442d 100644
--- a/etc/rc.network
+++ b/etc/rc.network
@@ -209,6 +209,11 @@ network_pass1() {
dhcp_interfaces=""
for ifn in ${network_interfaces}; do
+ if ifconfig ${interface} | grep -s UP,; then
+ # Interface is already up, so ignore it.
+ continue;
+ fi
+
if [ -r /etc/start_if.${ifn} ]; then
. /etc/start_if.${ifn}
eval showstat_$ifn=1