diff options
author | Warner Losh <imp@FreeBSD.org> | 2002-12-11 23:30:34 +0000 |
---|---|---|
committer | Warner Losh <imp@FreeBSD.org> | 2002-12-11 23:30:34 +0000 |
commit | 39a61a1fda3c3dc2918be8a2f4d5dd5cddd98b79 (patch) | |
tree | e9c787e183b3e168a01de1d4e8e79ee97cefe3b9 /etc | |
parent | 549bfb9273706f3c3fa66ead739239b9f755971e (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-x | etc/pccard_ether | 23 | ||||
-rw-r--r-- | etc/rc.network | 5 |
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 |