Handle failure of carrier check in dhcp-all-interfaces.sh
As described in the bug, there are conditions with certain switches in which the interface is 'admin down'ed during initialization. Doing a 'cat' on /sys/class/net/<interface>/carrier when it is 'admin down'ed produces an 'Invalid Argument' error and the script terminates. What this fix does is ignore failures of the 'cat' operation (by '|| echo 0') and place the link up inside the retry loop. Change-Id: I4f098aa5078b8482681394a3e9a6b17ed4bd4451 Closes-Bug: 1654046
This commit is contained in:
parent
7fc4856c6a
commit
f8eba14d99
@ -38,7 +38,7 @@ function serialize_me() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function get_if_link() {
|
function get_if_link() {
|
||||||
cat /sys/class/net/${1}/carrier
|
cat /sys/class/net/${1}/carrier || echo 0
|
||||||
}
|
}
|
||||||
|
|
||||||
function enable_interface() {
|
function enable_interface() {
|
||||||
@ -87,11 +87,11 @@ function inspect_interface() {
|
|||||||
elif [ "$mac_addr_type" != "0" ]; then
|
elif [ "$mac_addr_type" != "0" ]; then
|
||||||
echo "Device has generated MAC, skipping."
|
echo "Device has generated MAC, skipping."
|
||||||
else
|
else
|
||||||
ip link set dev $interface up &>/dev/null
|
|
||||||
|
|
||||||
local has_link
|
local has_link
|
||||||
local tries
|
local tries
|
||||||
for ((tries = 0; tries < 20; tries++)); do
|
for ((tries = 0; tries < 20; tries++)); do
|
||||||
|
# Need to set the link up on each iteration
|
||||||
|
ip link set dev $interface up &>/dev/null
|
||||||
has_link=$(get_if_link $interface)
|
has_link=$(get_if_link $interface)
|
||||||
[ "$has_link" == "1" ] && break
|
[ "$has_link" == "1" ] && break
|
||||||
sleep 1
|
sleep 1
|
||||||
|
Loading…
Reference in New Issue
Block a user