Stephen Yu wrote:
Hello,

In the dev release ntp-dev-4.2.7p361, the file ntp_timer.c has the
following code to set "sys_leap".

if (leapsec > 0) { leapsec--; if (leapsec == 0) { sys_leap =
LEAP_NOWARNING; ......................... } else { if (leapsec <
DAY) sys_leap = LEAP_ADDSECOND; if (leap_tai > 0) sys_tai = leap_tai
- 1; } }

The question is why "sys_leap = LEAP_ADDSECOND" is unconditional. Is
this based on the prior knowledge that earth always rotates slower?
In other word, could it ever be "sys_leap = LEAP_DELSECOND"?

You are correct, this is a bug, but it will almost certainly never hit us, since everything so far indicates that leap seconds will never be deleted.

The fix is relatively obvious, the most important tweak is that a negative leap second must be applied one second earlier, i.e. at 23:59:59 instead of midnight, so the countdown will be one second less.

Terje

--
- <Terje.Mathisen at tmsw.no>
"almost all programming can be viewed as an exercise in caching"

_______________________________________________
questions mailing list
questions@lists.ntp.org
http://lists.ntp.org/listinfo/questions

Reply via email to