[chrony-dev] [PATCH v4 3/5] leapdb: move source check into separate function

[ Thread Index | Date Index | More chrony.tuxfamily.org/chrony-dev Archives ]


From: Patrick Oppenlander <patrick.oppenlander@xxxxxxxxx>

The sanity checks are valid for all possible sources of leap second
information, so move them into a separate function check_leap_source().
---
 leapdb.c | 32 +++++++++++++++++++++-----------
 1 file changed, 21 insertions(+), 11 deletions(-)

diff --git a/leapdb.c b/leapdb.c
index 32f753a..c8a42cb 100644
--- a/leapdb.c
+++ b/leapdb.c
@@ -93,22 +93,32 @@ get_tz_leap(time_t when, int *tai_offset)
 
 /* ================================================== */
 
-void
-LDB_Initialise(void)
+static int
+check_leap_source(NTP_Leap (*src)(time_t when, int *tai_offset))
 {
   int tai_offset;
 
+  /* Check that the leap second source has good data for Jun 30 2012 and Dec 31 2012 */
+  if (src(1341014400, &tai_offset) == LEAP_InsertSecond && tai_offset == 34 &&
+      src(1356912000, &tai_offset) == LEAP_Normal && tai_offset == 35)
+    return 1;
+
+  return 0;
+}
+
+/* ================================================== */
+
+void
+LDB_Initialise(void)
+{
   leap_tzname = CNF_GetLeapSecTimezone();
-  if (leap_tzname) {
-    /* Check that the timezone has good data for Jun 30 2012 and Dec 31 2012 */
-    if (get_tz_leap(1341014400, &tai_offset) == LEAP_InsertSecond && tai_offset == 34 &&
-        get_tz_leap(1356912000, &tai_offset) == LEAP_Normal && tai_offset == 35) {
-      LOG(LOGS_INFO, "Using %s timezone to obtain leap second data", leap_tzname);
-    } else {
-      LOG(LOGS_WARN, "Timezone %s failed leap second check, ignoring", leap_tzname);
-      leap_tzname = NULL;
-    }
+  if (leap_tzname && !check_leap_source(get_tz_leap)) {
+    LOG(LOGS_WARN, "Timezone %s failed leap second check, ignoring", leap_tzname);
+    leap_tzname = NULL;
   }
+
+  if (leap_tzname)
+    LOG(LOGS_INFO, "Using %s timezone to obtain leap second data", leap_tzname);
 }
 
 /* ================================================== */
-- 
2.43.0


-- 
To unsubscribe email chrony-dev-request@xxxxxxxxxxxxxxxxxxxx with "unsubscribe" in the subject.
For help email chrony-dev-request@xxxxxxxxxxxxxxxxxxxx with "help" in the subject.
Trouble?  Email listmaster@xxxxxxxxxxxxxxxxxxxx.


Mail converted by MHonArc 2.6.19+ http://listengine.tuxfamily.org/