]> git.ipfire.org Git - thirdparty/chrony.git/commitdiff
Validate leap status in refclock samples
authorMiroslav Lichvar <mlichvar@redhat.com>
Mon, 13 Jun 2011 15:03:30 +0000 (17:03 +0200)
committerMiroslav Lichvar <mlichvar@redhat.com>
Mon, 13 Jun 2011 15:03:30 +0000 (17:03 +0200)
refclock.c
refclock.h

index 0f8a64c59dc7ab1480be109ff83049983babf5fc..86feac7f7e16dbada91413117655ae6ebd67731a 100644 (file)
@@ -338,7 +338,7 @@ RCL_GetDriverOption(RCL_Instance instance, char *name)
 }
 
 int
-RCL_AddSample(RCL_Instance instance, struct timeval *sample_time, double offset, NTP_Leap leap_status)
+RCL_AddSample(RCL_Instance instance, struct timeval *sample_time, double offset, int leap)
 {
   double correction, dispersion;
   struct timeval cooked_time;
@@ -351,7 +351,17 @@ RCL_AddSample(RCL_Instance instance, struct timeval *sample_time, double offset,
     return 0;
 
   filter_add_sample(&instance->filter, &cooked_time, offset - correction + instance->offset, dispersion);
-  instance->leap_status = leap_status;
+
+  switch (leap) {
+    case LEAP_Normal:
+    case LEAP_InsertSecond:
+    case LEAP_DeleteSecond:
+      instance->leap_status = leap;
+      break;
+    default:
+      instance->leap_status = LEAP_Unsynchronised;
+      break;
+  }
 
   log_sample(instance, &cooked_time, 0, 0, offset, offset - correction + instance->offset, dispersion);
 
index fa90337840fc08ea65aec17c9afb78e3f5e9eebc..ba2442b6b8254b60044f0de0dd24f06c87511337 100644 (file)
@@ -66,7 +66,7 @@ extern void RCL_SetDriverData(RCL_Instance instance, void *data);
 extern void *RCL_GetDriverData(RCL_Instance instance);
 extern char *RCL_GetDriverParameter(RCL_Instance instance);
 extern char *RCL_GetDriverOption(RCL_Instance instance, char *name);
-extern int RCL_AddSample(RCL_Instance instance, struct timeval *sample_time, double offset, NTP_Leap leap_status);
+extern int RCL_AddSample(RCL_Instance instance, struct timeval *sample_time, double offset, int leap);
 extern int RCL_AddPulse(RCL_Instance instance, struct timeval *pulse_time, double second);
 
 #endif