summaryrefslogtreecommitdiffstats
path: root/meta/recipes-extended/iputils/iputils/0002-arping-fix-f-quit-on-first-reply-regression.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta/recipes-extended/iputils/iputils/0002-arping-fix-f-quit-on-first-reply-regression.patch')
-rw-r--r--meta/recipes-extended/iputils/iputils/0002-arping-fix-f-quit-on-first-reply-regression.patch39
1 files changed, 39 insertions, 0 deletions
diff --git a/meta/recipes-extended/iputils/iputils/0002-arping-fix-f-quit-on-first-reply-regression.patch b/meta/recipes-extended/iputils/iputils/0002-arping-fix-f-quit-on-first-reply-regression.patch
new file mode 100644
index 0000000000..a5f40860dc
--- /dev/null
+++ b/meta/recipes-extended/iputils/iputils/0002-arping-fix-f-quit-on-first-reply-regression.patch
@@ -0,0 +1,39 @@
1From 1df5350bdc952b14901fde356b17b78c2bcd4cff Mon Sep 17 00:00:00 2001
2From: Sami Kerola <kerolasa@iki.fi>
3Date: Wed, 28 Aug 2019 20:05:22 +0100
4Subject: [PATCH] arping: fix -f quit on first reply regression
5
6When arping runs together with -f 'quit on first reply' and -w <timeout>
7'how long to wait for a reply' the command needs to exit if replies are not
8received after wait period. Notice that the exit in case of lost packages
9will be 1 signifying failure. Getting a reply results to 0 exit value.
10
11Addresses: https://bugs.debian.org/935946
12Reported-by: Lucas Nussbaum <lucas@debian.org>
13Addresses: https://github.com/iputils/iputils/issues/211
14Reported-by: Noah Meyerhans <noahm@debian.org>
15Broken-since: 67e070d08dcbec990e1178360f82b3e2ca4f6d5f
16Signed-off-by: Sami Kerola <kerolasa@iki.fi>
17Upstream-Status: Backport [https://github.com/iputils/iputils/commit/1df5350bdc952b14901fde356b17b78c2bcd4cff]
18Signed-off-by: Diego Santa Cruz <Diego.SantaCruz@spinetix.com>
19---
20 arping.c | 3 ++-
21 1 file changed, 2 insertions(+), 1 deletion(-)
22
23diff --git a/arping.c b/arping.c
24index 2c87c15..30884f6 100644
25--- a/arping.c
26+++ b/arping.c
27@@ -764,7 +764,8 @@ static int event_loop(struct run_state *ctl)
28 continue;
29 }
30 total_expires += exp;
31- if (0 < ctl->count && (uint64_t)ctl->count < total_expires) {
32+ if ((0 < ctl->count && (uint64_t)ctl->count < total_expires) ||
33+ (ctl->quit_on_reply && ctl->timeout < total_expires)) {
34 exit_loop = 1;
35 continue;
36 }
37--
382.18.4
39