svn commit: r269802 - stable/9/sbin/ping6
Xin LI
delphij at FreeBSD.org
Mon Aug 11 07:00:57 UTC 2014
Author: delphij
Date: Mon Aug 11 07:00:57 2014
New Revision: 269802
URL: http://svnweb.freebsd.org/changeset/base/269802
Log:
MFC r269180:
When interval is set to very small value with limited amount of packets,
ping6(8) would quit before the remote side gets a chance to respond.
Solve this by resetting the itimer when we have reached the maximum packet
number have reached, but let the other handling to continue.
PR: bin/151023
Submitted by: tjmao at tjmao.net
Modified:
stable/9/sbin/ping6/ping6.c
Directory Properties:
stable/9/sbin/ping6/ (props changed)
Modified: stable/9/sbin/ping6/ping6.c
==============================================================================
--- stable/9/sbin/ping6/ping6.c Mon Aug 11 06:55:41 2014 (r269801)
+++ stable/9/sbin/ping6/ping6.c Mon Aug 11 07:00:57 2014 (r269802)
@@ -1088,8 +1088,14 @@ main(int argc, char *argv[])
/* signal handling */
if (seenalrm) {
/* last packet sent, timeout reached? */
- if (npackets && ntransmitted >= npackets)
- break;
+ if (npackets && ntransmitted >= npackets) {
+ struct timeval zerotime = {0, 0};
+ itimer.it_value = zerotime;
+ itimer.it_interval = zerotime;
+ (void)setitimer(ITIMER_REAL, &itimer, NULL);
+ seenalrm = 0; /* clear flag */
+ continue;
+ }
retransmit();
seenalrm = 0;
continue;
More information about the svn-src-stable-9
mailing list