diff options
author | imp <imp@FreeBSD.org> | 2003-06-25 20:56:40 +0000 |
---|---|---|
committer | imp <imp@FreeBSD.org> | 2003-06-25 20:56:40 +0000 |
commit | 27d211ac0c5f9c213f9253aa67ea882d09518b0e (patch) | |
tree | aad752a46243b0119d04221862b3a35c63110f06 | |
parent | bf27dce79bb1d92b4f410f062ba6daf5c51c50d3 (diff) | |
download | FreeBSD-src-27d211ac0c5f9c213f9253aa67ea882d09518b0e.zip FreeBSD-src-27d211ac0c5f9c213f9253aa67ea882d09518b0e.tar.gz |
During a positive leap second, the tai_time offset should be
incremented at the start of the leap second, not after the leap second
has been inserted. This is because at the start of the leap second,
we set the time back one second. This setting back one second is the
moment that the offset changes. The old code set it back after the
leap second, but that's one second too late. The negative leap second
case is handled correctly.
Reviewed by: phk
-rw-r--r-- | sys/kern/kern_ntptime.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/sys/kern/kern_ntptime.c b/sys/kern/kern_ntptime.c index 6490cbd..8bf109b 100644 --- a/sys/kern/kern_ntptime.c +++ b/sys/kern/kern_ntptime.c @@ -480,6 +480,7 @@ ntp_update_second(int64_t *adjustment, time_t *newsec) else if ((*newsec) % 86400 == 0) { (*newsec)--; time_state = TIME_OOP; + time_tai++; } break; @@ -500,7 +501,6 @@ ntp_update_second(int64_t *adjustment, time_t *newsec) * Insert second in progress. */ case TIME_OOP: - time_tai++; time_state = TIME_WAIT; break; |