/* ================================================== */
+static NTP_Leap get_tz_leap(time_t when);
+
+/* ================================================== */
+
static void
handle_slew(struct timeval *raw,
struct timeval *cooked,
enable_local_stratum = CNF_AllowLocalReference(&local_stratum);
leap_tzname = CNF_GetLeapSecTimezone();
+ if (leap_tzname) {
+ /* Check that the timezone has good data for Jun 30 2008 and Dec 31 2008 */
+ if (get_tz_leap(1214784000) == LEAP_Normal &&
+ get_tz_leap(1230681600) == LEAP_InsertSecond) {
+ LOG(LOGS_INFO, LOGF_Reference, "Using %s timezone to obtain leap second data", leap_tzname);
+ } else {
+ LOG(LOGS_WARN, LOGF_Reference, "Timezone %s failed leap second check, ignoring", leap_tzname);
+ leap_tzname = NULL;
+ }
+ }
CNF_GetMakeStep(&make_step_limit, &make_step_threshold);
CNF_GetMaxChange(&max_offset_delay, &max_offset_ignore, &max_offset);