From bf2900d716397734136ec3014a591281504aa00b Mon Sep 17 00:00:00 2001 From: Noah Meyerhans Date: Wed, 16 Feb 2022 22:27:49 -0800 Subject: [PATCH 2/2] arping: exit 0 if running in deadline mode and we see replies The arping behavior when running in deadline mode without a packet count (-w without -c) should match that of ping: any replies indicate that the host is up and should result in a zero (success) exit status. Fixes: https://github.com/iputils/iputils/issues/392 Closes: https://github.com/iputils/iputils/pull/395 Reviewed-by: Petr Vorel Signed-off-by: Noah Meyerhans (cherry picked from commit 854873bdd28fcdd9cc3fe0c2d29c083a07d07a86) --- arping.c | 2 ++ doc/arping.xml | 14 +++++++------- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/arping.c b/arping.c index 8059517..6f94e90 100644 --- a/arping.c +++ b/arping.c @@ -828,6 +828,8 @@ static int event_loop(struct run_state *ctl) else if (ctl->dad && ctl->quit_on_reply) /* Duplicate address detection mode return value */ rc |= !(ctl->brd_sent != ctl->received); + else if (ctl->timeout && !(ctl->count > 0)) + rc |= !(ctl->received > 0); else rc |= (ctl->sent != ctl->received); return rc; diff --git a/doc/arping.xml b/doc/arping.xml index 711718f..9adbc0c 100644 --- a/doc/arping.xml +++ b/doc/arping.xml @@ -202,13 +202,13 @@ xml:id="man.arping"> Specify a timeout, in seconds, before arping exits regardless of how many - packets have been sent or received. In this case - arping does not stop after - count packet are sent, it - waits either for - deadline expire or until - count probes are - answered. + packets have been sent or received. If any replies are + received, exit with status 0, otherwise status 1. When + combined with the count + option, exit with status 0 if count replies are received before the + deadline expiration, otherwise status 1. + -- 2.46.0