]> git.ipfire.org Git - thirdparty/ntp.git/commitdiff
refclock_hpgps.c:
authorHal Murray <murray@ntp.org>
Tue, 28 Apr 2009 12:09:13 +0000 (08:09 -0400)
committerHal Murray <murray@ntp.org>
Tue, 28 Apr 2009 12:09:13 +0000 (08:09 -0400)
  Fix for bug 1090, bogus leapseconds
ChangeLog:
  Fix for bug 1090, bogus leapseconds in refclock_hpgps

bk: 49f6f1e9dwtpsiDUZEfrC7N1EAyF7A

ChangeLog
ntpd/refclock_hpgps.c

index f29d8999fb1d637a1e56e611b8f0607125891d7d..f840c28de6423df21139358111b33a11f8d6a2e6 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,4 @@
+* Fix refclock_hpgps for Bug 1090 (bogus leap seconds)
 (4.2.5p167) 2009/04/26 Released by Harlan Stenn <stenn@ntp.org>
 * Crypto cleanup from Dave Mills.
 (4.2.5p166) 2009/04/25 Released by Harlan Stenn <stenn@ntp.org>
index f125a425a050ac3b0e56b6af12fd5dfd62a0f4b3..08f709fd36c75cc3315f28b4e37a6232c65cdd9e 100644 (file)
@@ -532,18 +532,25 @@ hpgps_receive(
                pp->leap = LEAP_NOTINSYNC;
        }
        else {
+               pp->leap = LEAP_NOWARNING;
                switch (leapchar) {
 
-                   case '+':
-                       pp->leap = LEAP_ADDSECOND;
+                   case '0':
                        break;
                      
-                   case '0':
-                       pp->leap = LEAP_NOWARNING;
+                   /* See http://bugs.ntp.org/1090
+                    * Ignore leap announcements unless June or December.
+                    * Better would be to use :GPSTime? to find the month,
+                    * but that seems too likely to introduce other bugs.
+                    */
+                   case '+':
+                       if ((month==6) || (month==12))
+                           pp->leap = LEAP_ADDSECOND;
                        break;
                      
                    case '-':
-                       pp->leap = LEAP_DELSECOND;
+                       if ((month==6) || (month==12))
+                           pp->leap = LEAP_DELSECOND;
                        break;
                      
                    default: