aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xsysconfig/network-scripts/ifup6
-rw-r--r--sysconfig/network-scripts/network-functions14
2 files changed, 19 insertions, 1 deletions
diff --git a/sysconfig/network-scripts/ifup b/sysconfig/network-scripts/ifup
index ce0ca127..f1aad49c 100755
--- a/sysconfig/network-scripts/ifup
+++ b/sysconfig/network-scripts/ifup
@@ -147,7 +147,11 @@ if [ -n "${DYNCONFIG}" ]; then
DHCPCDARGS="${DHCPCDARGS} -R"
fi
echo -n $"Determining IP information for ${DEVICE}..."
-
+ if check_link_down ${DEVICE}; then
+ echo " failed; no link present. Check cable?"
+ exit 1
+ fi
+
# DHCP clients need DNS to be available, and we don't know
# what DNS server they're using until they are done.
FWHACK=
diff --git a/sysconfig/network-scripts/network-functions b/sysconfig/network-scripts/network-functions
index ee65bd61..fdd4a211 100644
--- a/sysconfig/network-scripts/network-functions
+++ b/sysconfig/network-scripts/network-functions
@@ -81,6 +81,20 @@ check_device_down ()
return $retcode
}
+check_link_down ()
+{
+ if [ -x /sbin/mii-tool ]; then
+ output=`/sbin/mii-tool $1 2>&1`
+ if echo $output | grep -q "Operation not supported"; then
+ return 0
+ elif echo $output | grep -q "link ok"; then
+ return 0
+ else
+ return 1
+ fi
+ fi
+ return 0
+}
check_default_route ()
{