Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 14 Aug 2019 16:45:10 +0000 (UTC)
From:      Alan Somers <asomers@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r351030 - head/sbin/ping
Message-ID:  <201908141645.x7EGjAx2039820@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: asomers
Date: Wed Aug 14 16:45:09 2019
New Revision: 351030
URL: https://svnweb.freebsd.org/changeset/base/351030

Log:
  ping: fix triptime calculation after r350998
  
  That revision changed the internal clock to the monotonic, but neglected to
  change the datagram's timestamp source.
  
  Reported by:	Oliver Hartmann, Michael Butler
  Reviewed by:	Ján Sučan <sucanjan@gmail.com>, allanjude
  MFC after:	2 weeks
  MFC-With:	r350998
  Differential Revision:	https://reviews.freebsd.org/D21258

Modified:
  head/sbin/ping/ping.c

Modified: head/sbin/ping/ping.c
==============================================================================
--- head/sbin/ping/ping.c	Wed Aug 14 16:40:23 2019	(r351029)
+++ head/sbin/ping/ping.c	Wed Aug 14 16:45:09 2019	(r351030)
@@ -760,9 +760,15 @@ main(int argc, char *const *argv)
 		}
 	}
 #ifdef SO_TIMESTAMP
-	{ int on = 1;
-	if (setsockopt(srecv, SOL_SOCKET, SO_TIMESTAMP, &on, sizeof(on)) < 0)
-		err(EX_OSERR, "setsockopt SO_TIMESTAMP");
+	{
+		int on = 1;
+		int ts_clock = SO_TS_MONOTONIC;
+		if (setsockopt(srecv, SOL_SOCKET, SO_TIMESTAMP, &on,
+		    sizeof(on)) < 0)
+			err(EX_OSERR, "setsockopt SO_TIMESTAMP");
+		if (setsockopt(srecv, SOL_SOCKET, SO_TS_CLOCK, &ts_clock,
+		    sizeof(ts_clock)) < 0)
+			err(EX_OSERR, "setsockopt SO_TS_CLOCK");
 	}
 #endif
 	if (sweepmax) {



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201908141645.x7EGjAx2039820>