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
This commit is contained in:
Warner Losh 2003-06-25 20:56:40 +00:00
parent d88797c2ba
commit eac3c62b51

View file

@ -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;