Gracefully handle unreadable /sys/class/net/dev/ nodes

Fixes https://bugs.gentoo.org/629228
Fixes #189
Fixes #185
Fixes #178
This commit is contained in:
Marcel Greter 2017-12-09 23:18:03 +01:00 committed by William Hubbs
parent fb96c9c127
commit 5c81661d47

View File

@ -31,7 +31,7 @@ get_interfaces()
start ()
{
local carriers configured dev gateway ifcount infinite
local rc state x
local carrier operstate rc
ebegin "Checking to see if the network is online"
rc=0
@ -44,10 +44,10 @@ start ()
ifcount=0
for dev in ${interfaces}; do
: $((ifcount += 1))
read x < /sys/class/net/$dev/carrier
[ $x -eq 1 ] && : $((carriers += 1))
read x < /sys/class/net/$dev/operstate
[ "$x" = up ] && : $((configured += 1))
read carrier < /sys/class/net/$dev/carrier 2> /dev/null
[ $carrier -eq 1 ] && : $((carriers += 1))
read operstate < /sys/class/net/$dev/operstate 2> /dev/null
[ "$operstate" = up ] && : $((configured += 1))
done
[ $configured -eq $ifcount ] && [ $carriers -ge 1 ] && break
sleep 1