From 9b630a0664679aab80750e47889b0d77f36d6ada Mon Sep 17 00:00:00 2001 From: Miroslav Lichvar Date: Fri, 6 Jun 2014 11:19:03 +0200 Subject: [PATCH] reference: fix adjusting of last reference update time The timestamp is in cooked time, it needs to be adjusted on all changes, not only on step. --- reference.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/reference.c b/reference.c index bdc8f7d..0864889 100644 --- a/reference.c +++ b/reference.c @@ -147,11 +147,13 @@ handle_slew(struct timeval *raw, LCL_ChangeType change_type, void *anything) { + double delta; + if (change_type == LCL_ChangeUnknownStep) { last_ref_update.tv_sec = 0; last_ref_update.tv_usec = 0; - } else if (change_type == LCL_ChangeStep) { - UTI_AddDoubleToTimeval(&last_ref_update, -doffset, &last_ref_update); + } else if (last_ref_update.tv_sec) { + UTI_AdjustTimeval(&last_ref_update, cooked, &last_ref_update, &delta, dfreq, doffset); } }