aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDenys Vlasenko <vda.linux@googlemail.com>2020-12-20 11:16:32 +0100
committerDenys Vlasenko <vda.linux@googlemail.com>2020-12-20 11:16:32 +0100
commitbc2c1b4f869d3e3b90c187ebb07b3c23c14ca880 (patch)
treec926195d36118b05d1b57658ab3ba2e2c54bc369
parent2124c0ec97249b66889b6486ab5b5223993d31c0 (diff)
downloadbusybox-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.c9
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));