From: Harlan Stenn Date: Thu, 20 Nov 2003 08:44:29 +0000 (-0500) Subject: [Bug 217] ntptrace should show sync distance, not rootdelay. X-Git-Tag: NTP_4_2_3~194^2~15^2~1^2~1 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=d902c4a2fb52012df96166e7913a609b9272ef8f;p=thirdparty%2Fntp.git [Bug 217] ntptrace should show sync distance, not rootdelay. bk: 3fbc7eedbLEDslQch_lnrczpNuvS0A --- diff --git a/scripts/ntptrace.in b/scripts/ntptrace.in index 07d2ddc308..c58a84abef 100755 --- a/scripts/ntptrace.in +++ b/scripts/ntptrace.in @@ -17,6 +17,8 @@ $host = shift; $host ||= "127.0.0.1"; for (;;) { + $rootdelay = 0; + $rootdispersion = 0; $stratum = 255; $cmd = "$ntpq -n -c rv $host"; open(PH, $cmd . "|") || die "failed to start command $cmd: $!"; @@ -26,12 +28,13 @@ for (;;) { # Very old servers report phase and not offset. $offset = $1 if (/(?:offset|phase)=([^\s,]+)/); $rootdelay = $1 if (/rootdelay=([^\s,]+)/); + $rootdispersion = $1 if (/rootdispersion=(^\s,]+)/); $refid = $1 if (/refid=([^\s,]+)/); } close(PH) || die "$cmd failed"; last if ($stratum == 255); $offset /= 1000; - $rootdelay /= 1000; + $syncdistance = ($rootdispersion + ($rootdelay / 2)) / 1000; $dhost = $host; # Only do lookups of IPv4 addresses. The standard lookup functions # of perl only do IPv4 and I don't know if we should require extras. @@ -40,8 +43,8 @@ for (;;) { $name = (gethostbyaddr($iaddr, AF_INET))[0]; $dhost = $name if (defined($name)); } - printf("%s: stratum %d, offset %f, root distance %f", - $dhost, $stratum, $offset, $rootdelay); + printf("%s: stratum %d, offset %f, synch distance %f", + $dhost, $stratum, $offset, $syncdistance); printf(", refid '%s'", $refid) if ($stratum == 1); printf("\n"); last if ($stratum == 0 || $stratum == 1 || $stratum == 16);