|
|
@ -40,19 +40,35 @@ if_up() { |
|
|
|
stop_subprocs |
|
|
|
} |
|
|
|
|
|
|
|
ping_test_host() { |
|
|
|
if [ "$FAMILY" = "ipv6" ]; then |
|
|
|
echo "::1" |
|
|
|
else |
|
|
|
echo "127.0.0.1" |
|
|
|
fi |
|
|
|
} |
|
|
|
|
|
|
|
get_ping_command() { |
|
|
|
if [ -x "/usr/bin/ping" ] && /usr/bin/ping -${FAMILY#ipv} -c1 -q $(ping_test_host) &>/dev/null; then |
|
|
|
# -4 option added in iputils c3e68ac6 so need to check if we can use it |
|
|
|
# or if we must use ping and ping6 |
|
|
|
echo "/usr/bin/ping -${FAMILY#ipv}" |
|
|
|
elif [ "$FAMILY" = "ipv6" ] && [ -x "/usr/bin/ping6" ]; then |
|
|
|
echo "/usr/bin/ping6" |
|
|
|
elif [ "$FAMILY" = "ipv4" ] && [ -x "/usr/bin/ping" ]; then |
|
|
|
echo "/usr/bin/ping" |
|
|
|
elif [ -x "/bin/ping" ]; then |
|
|
|
echo "/bin/ping -${FAMILY#ipv}" |
|
|
|
else |
|
|
|
return 1 |
|
|
|
fi |
|
|
|
} |
|
|
|
|
|
|
|
validate_track_method() { |
|
|
|
case "$1" in |
|
|
|
ping) |
|
|
|
if [ -x "/usr/bin/ping" ] && [ "$(/usr/bin/ping -V | grep -o '[0-9]*$')" -gt 20150519 ]; then |
|
|
|
# -4 option added in iputils c3e68ac6 |
|
|
|
PING="/usr/bin/ping -${FAMILY#ipv}" |
|
|
|
elif [ "$FAMILY" = "ipv6" ] && [ -x "/usr/bin/ping6" ]; then |
|
|
|
PING="/usr/bin/ping6" |
|
|
|
elif [ "$FAMILY" = "ipv4" ] && [ -x "/usr/bin/ping" ]; then |
|
|
|
PING="/usr/bin/ping" |
|
|
|
elif [ -x "/bin/ping" ]; then |
|
|
|
PING="/bin/ping -${FAMILY#ipv}" |
|
|
|
else |
|
|
|
PING=$(get_ping_command) |
|
|
|
if [ $? -ne 0 ]; then |
|
|
|
LOG warn "Missing ping. Please enable BUSYBOX_DEFAULT_PING and recompile busybox or install iputils-ping package." |
|
|
|
return 1 |
|
|
|
fi |
|
|
|