diff options
author | Denys Vlasenko <vda.linux@googlemail.com> | 2020-12-20 11:16:32 +0100 |
---|---|---|
committer | Denys Vlasenko <vda.linux@googlemail.com> | 2020-12-20 11:16:32 +0100 |
commit | bc2c1b4f869d3e3b90c187ebb07b3c23c14ca880 (patch) | |
tree | c926195d36118b05d1b57658ab3ba2e2c54bc369 | |
parent | 2124c0ec97249b66889b6486ab5b5223993d31c0 (diff) | |
download | busybox-w32-bc2c1b4f869d3e3b90c187ebb07b3c23c14ca880.tar.gz busybox-w32-bc2c1b4f869d3e3b90c187ebb07b3c23c14ca880.tar.bz2 busybox-w32-bc2c1b4f869d3e3b90c187ebb07b3c23c14ca880.zip |
ping: fix -wN to not think that one packet is always lost
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
-rw-r--r-- | networking/ping.c | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/networking/ping.c b/networking/ping.c index bbf9f0db1..ea4fa364b 100644 --- a/networking/ping.c +++ b/networking/ping.c | |||
@@ -471,17 +471,16 @@ static void sendping_tail(void (*sp)(int), int size_pkt) | |||
471 | { | 471 | { |
472 | int sz; | 472 | int sz; |
473 | 473 | ||
474 | CLR((uint16_t)G.ntransmitted % MAX_DUP_CHK); | ||
475 | G.ntransmitted++; | ||
476 | |||
477 | size_pkt += datalen; | ||
478 | |||
479 | if (G.deadline_us) { | 474 | if (G.deadline_us) { |
480 | unsigned n = G.cur_us - G.deadline_us; | 475 | unsigned n = G.cur_us - G.deadline_us; |
481 | if ((int)n >= 0) | 476 | if ((int)n >= 0) |
482 | print_stats_and_exit(0); | 477 | print_stats_and_exit(0); |
483 | } | 478 | } |
484 | 479 | ||
480 | CLR((uint16_t)G.ntransmitted % MAX_DUP_CHK); | ||
481 | G.ntransmitted++; | ||
482 | size_pkt += datalen; | ||
483 | |||
485 | /* sizeof(pingaddr) can be larger than real sa size, but I think | 484 | /* sizeof(pingaddr) can be larger than real sa size, but I think |
486 | * it doesn't matter */ | 485 | * it doesn't matter */ |
487 | sz = xsendto(pingsock, G.snd_packet, size_pkt, &pingaddr.sa, sizeof(pingaddr)); | 486 | sz = xsendto(pingsock, G.snd_packet, size_pkt, &pingaddr.sa, sizeof(pingaddr)); |