Annotation of embedaddon/ntp/NOTES.y2kfixes, revision 1.1
1.1 ! misho 1: Name of the Application: xntp
! 2:
! 3: Version Number: 4.0.91
! 4:
! 5: Download Size: 4541953 bytes
! 6:
! 7: Downloaded from: http://www.eecis.udel.edu/~ntp/
! 8:
! 9: Operating Systems Supported: many
! 10:
! 11: Operating Systems Tested: unix
! 12:
! 13: Testing
! 14:
! 15: Dates tested (CPU clock set)
! 16:
! 17: 1999-12-31
! 18: 2000-01-01
! 19: 2000-02-29
! 20:
! 21: Critical fragments of code tested with other dates by special
! 22: algorithms.
! 23:
! 24: Hardware Platform: Sun Sparc
! 25:
! 26: OS: Solaris 2.6
! 27:
! 28: Compiler: gcc
! 29:
! 30: Version: 2.8.1
! 31:
! 32: Repairs: 9
! 33:
! 34: No. of files Repaired: 13
! 35:
! 36:
! 37: Compilation of Patches Required: yes
! 38:
! 39: Results Description:
! 40:
! 41: 1) Tested suspicious code.
! 42:
! 43: 2) Repaired problem code and added documentation to ntp.h.
! 44:
! 45: 3) Verified ntpd works on critical Y2K dates.
! 46:
! 47:
! 48: Comments:
! 49:
! 50: 1) Errors were found in improper use of tm_year within struct tm,
! 51: calculations that did not support year 2000 as a leap year
! 52: (it truly is, despite any unchanged comments remaining in
! 53: the NTP source), and some incorrect date calculations, while
! 54: not traditional Y2K errors, would break in the year 2000.
! 55:
! 56: 2) include/ntpd.h
! 57: Added some definitions and documentation about the right way
! 58: of doing things. Definitions used by most, if not all, of
! 59: the Y2K repairs.
! 60:
! 61: Cautions:
! 62:
! 63: 1) Some of the Y2K repairs were to reference clock drivers that
! 64: we did not have the local hardware to test. While I believe
! 65: the changes are sound, they really need to be tested.
! 66: This includes:
! 67:
! 68: refclock_arc.c
! 69: refclock_heath.c
! 70: refclock_hpgps.c
! 71:
! 72: Also, parseutil/dcfd.c is another hardware dependent module that
! 73: was repaired without live testing.
! 74:
! 75: Non-Y2K Problems Observed:
! 76:
! 77: 1) Inconsistent casts of variables containing time values may
! 78: make expansion to 64 bit integer values in a portable manner
! 79: difficult.
! 80:
! 81: 2) libntp/caltontp.c:
! 82: Has logic I believe will fail starting in year 2100 or so.
! 83: Left unchanged/untested as it works well beyond basic NTP 2036
! 84: limit checked by check_y2k.c.
! 85: If NTP is implemented on 64-bit machines, this should be fixed
! 86:
! 87: 3) ntpd/refclock_acts.c:
! 88: ACTS time format has changed somewhat since the code was written.
! 89: In particular the '*' '#' character switch no longer occurs...
! 90: only '*' is typed.
! 91:
! 92: NOTE: Author (falsely) stated Y2K is NOT a leap year when it
! 93: really is.
! 94:
! 95: TRUTH: ACTS will go beyond Y2K: it uses FourDigitYear % 100 values
! 96: for year so year 2000 will revert to "00".
! 97:
! 98:
! 99: 4) ntpd/refclock_oncore.c
! 100: Some very strange logic in manipulating year values:
! 101: 1122 instance->pp->year = buf[6]*256+buf[7];
! 102: Multiply by 256????
! 103:
! 104: Response from PHK:
! 105: The entire protocol is binary, the year is a 16 bit quantity
! 106: which according to the manual can have the range 1998-2018.
! 107:
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>