aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJan Macku <jamacku@redhat.com>2021-02-12 10:15:21 +0100
committerJan Macku <jamacku@redhat.com>2021-02-12 14:13:40 +0100
commit6c9689c792ac7771159794ee24ab99bd746318d9 (patch)
tree3c029378727c24821ef23a94700a9bb8b9a274fb
parent91317a91806e99ba1350a49b3a36fce0ec629919 (diff)
downloadinitscripts-6c9689c792ac7771159794ee24ab99bd746318d9.tar
initscripts-6c9689c792ac7771159794ee24ab99bd746318d9.tar.gz
initscripts-6c9689c792ac7771159794ee24ab99bd746318d9.tar.bz2
initscripts-6c9689c792ac7771159794ee24ab99bd746318d9.tar.xz
initscripts-6c9689c792ac7771159794ee24ab99bd746318d9.zip
network scripts: Avoid infinite loop of arping
Introduced in the bonding driver (commit ae46f184bc1f) now reports transmission failures. Before that, it silently dropped the packet and replied with success error code. The arping of iputils retries endlessly when a transmission error occurs. This patch fix this behavior.
-rwxr-xr-xnetwork-scripts/ifup-aliases5
-rwxr-xr-xnetwork-scripts/ifup-eth4
2 files changed, 5 insertions, 4 deletions
diff --git a/network-scripts/ifup-aliases b/network-scripts/ifup-aliases
index 971ce208..6178c080 100755
--- a/network-scripts/ifup-aliases
+++ b/network-scripts/ifup-aliases
@@ -280,8 +280,9 @@ function new_interface ()
# update ARP cache of neighboring computers:
if ! is_false "${ARPUPDATE}" && [ "${REALDEVICE}" != "lo" ]; then
- /sbin/arping -q -A -c 1 -I ${parent_device} ${IPADDR}
- ( sleep 2; /sbin/arping -q -U -c 1 -I ${parent_device} ${IPADDR} ) > /dev/null 2>&1 < /dev/null &
+ /sbin/arping -q -A -c 1 -w ${ARPING_UPDATE_WAIT:-3} -I ${parent_device} ${IPADDR}
+ ( sleep 2;
+ /sbin/arping -q -U -c 1 -w ${ARPING_UPDATE_WAIT:-3} -I ${parent_device} ${IPADDR} ) > /dev/null 2>&1 < /dev/null &
fi
! is_false "$IPV6INIT" && \
diff --git a/network-scripts/ifup-eth b/network-scripts/ifup-eth
index 730e08fd..2f58d195 100755
--- a/network-scripts/ifup-eth
+++ b/network-scripts/ifup-eth
@@ -302,9 +302,9 @@ else
# update ARP cache of neighboring computers
if ! is_false "${arpupdate[$idx]}" && [ "${REALDEVICE}" != "lo" ]; then
- /sbin/arping -q -A -c 1 -I ${REALDEVICE} ${ipaddr[$idx]}
+ /sbin/arping -q -A -c 1 -w ${ARPING_UPDATE_WAIT:-3} -I ${REALDEVICE} ${ipaddr[$idx]}
( sleep 2;
- /sbin/arping -q -U -c 1 -I ${REALDEVICE} ${ipaddr[$idx]} ) > /dev/null 2>&1 < /dev/null &
+ /sbin/arping -q -U -c 1 -w ${ARPING_UPDATE_WAIT:-3} -I ${REALDEVICE} ${ipaddr[$idx]} ) > /dev/null 2>&1 < /dev/null &
fi
# set lifetime of address to forever