]> git.ipfire.org Git - thirdparty/chrony.git/commitdiff
Slew only non-zero local timestamps in ntp core
authorMiroslav Lichvar <mlichvar@redhat.com>
Mon, 3 Jun 2013 09:34:15 +0000 (11:34 +0200)
committerMiroslav Lichvar <mlichvar@redhat.com>
Mon, 3 Jun 2013 14:03:07 +0000 (16:03 +0200)
ntp_core.c

index eac5a19fb565e7a8e1e56dcaab1725c359bdb3b6..e9ef711c79f4f37be13286e9ae3cca725ff45330 100644 (file)
@@ -1513,13 +1513,15 @@ NCR_SlewTimes(NCR_Instance inst, struct timeval *when, double dfreq, double doff
   struct timeval prev;
   double delta;
   prev = inst->local_rx;
-  UTI_AdjustTimeval(&inst->local_rx, when, &inst->local_rx, &delta, dfreq, doffset);
+  if (inst->local_rx.tv_sec || inst->local_rx.tv_usec)
+    UTI_AdjustTimeval(&inst->local_rx, when, &inst->local_rx, &delta, dfreq, doffset);
 #ifdef TRACEON
   LOG(LOGS_INFO, LOGF_NtpCore, "rx prev=[%s] new=[%s]",
       UTI_TimevalToString(&prev), UTI_TimevalToString(&inst->local_rx));
 #endif
   prev = inst->local_tx;
-  UTI_AdjustTimeval(&inst->local_tx, when, &inst->local_tx, &delta, dfreq, doffset);
+  if (inst->local_tx.tv_sec || inst->local_tx.tv_usec)
+    UTI_AdjustTimeval(&inst->local_tx, when, &inst->local_tx, &delta, dfreq, doffset);
 #ifdef TRACEON
   LOG(LOGS_INFO, LOGF_NtpCore, "tx prev=[%s] new=[%s]",
       UTI_TimevalToString(&prev), UTI_TimevalToString(&inst->local_tx));