aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xnet/mwan3/files/usr/sbin/mwan3track36
1 files changed, 26 insertions, 10 deletions
diff --git a/net/mwan3/files/usr/sbin/mwan3track b/net/mwan3/files/usr/sbin/mwan3track
index d4a5f44ab..bd8954c07 100755
--- a/net/mwan3/files/usr/sbin/mwan3track
+++ b/net/mwan3/files/usr/sbin/mwan3track
@@ -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