summaryrefslogtreecommitdiffstats
path: root/sbin/ping6
diff options
context:
space:
mode:
Diffstat (limited to 'sbin/ping6')
-rw-r--r--sbin/ping6/ping6.86
-rw-r--r--sbin/ping6/ping6.c7
2 files changed, 9 insertions, 4 deletions
diff --git a/sbin/ping6/ping6.8 b/sbin/ping6/ping6.8
index fc59591..fe57b99 100644
--- a/sbin/ping6/ping6.8
+++ b/sbin/ping6/ping6.8
@@ -29,7 +29,7 @@
.\"
.\" $FreeBSD$
.\"
-.Dd November 15, 2007
+.Dd May 27, 2008
.Dt PING6 8
.Os
.Sh NAME
@@ -409,7 +409,9 @@ option of
The
.Nm
utility returns 0 on success (the host is alive),
-and non-zero if the arguments are incorrect or the host is not responding.
+2 if the transmission was successful but no responses were received,
+any other non-zero value if the arguments are incorrect or
+another error has occured.
.Sh EXAMPLES
Normally,
.Nm
diff --git a/sbin/ping6/ping6.c b/sbin/ping6/ping6.c
index ee0847e..849c17a 100644
--- a/sbin/ping6/ping6.c
+++ b/sbin/ping6/ping6.c
@@ -1074,6 +1074,9 @@ main(argc, argv)
/* signal handling */
if (seenalrm) {
+ /* last packet sent, timeout reached? */
+ if (npackets && ntransmitted >= npackets)
+ break;
retransmit();
seenalrm = 0;
continue;
@@ -1173,7 +1176,7 @@ main(argc, argv)
break;
}
summary();
- exit(nreceived == 0);
+ exit(nreceived == 0 ? 2 : 0);
}
void
@@ -1224,7 +1227,7 @@ retransmit()
itimer.it_interval.tv_usec = 0;
itimer.it_value.tv_usec = 0;
- (void)signal(SIGALRM, onint);
+ (void)signal(SIGALRM, onsignal);
(void)setitimer(ITIMER_REAL, &itimer, NULL);
}
OpenPOWER on IntegriCloud