diff options
-rwxr-xr-x | sysconfig/network-scripts/ifup | 6 | ||||
-rw-r--r-- | sysconfig/network-scripts/network-functions | 14 |
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 () { |