timeservers: Add Fallback Timerservers
authorAlok Barsode <alok.barsode@linux.intel.com>
Thu, 5 Apr 2012 10:20:24 +0000 (13:20 +0300)
committerPatrik Flykt <patrik.flykt@linux.intel.com>
Thu, 5 Apr 2012 15:57:19 +0000 (18:57 +0300)
Add Fallback timeservers via main.conf.

These timeservers are used for time corrections when
there are no valid timeservers provided by the user or by the
network. The list of timeservers which are queried for
timing correction are Timeservers.Configuration (set by the
user), service timeservers(via service), gateway, global
timeservers (via clock API) and fallback timeservers, in that order.

src/main.conf
src/timeserver.c

index b4144ddc6766dc8cf45eb5c3681be52a3ca1955b..92ec8412b333ffb43dee0a61a2e2d0d9455be975 100644 (file)
@@ -5,3 +5,10 @@
 # the scan list is empty. In that case, a simple backoff
 # mechanism starting from 10s up to 5 minutes will run.
 BackgroundScanning = true
+
+# List of Fallback timeservers separated by ",".
+# These timeservers are used for NTP sync when there are
+# no timeserver set by the user or by the service.
+# These can contain mixed combination of fully qualified
+# domain names, IPv4 and IPv6 addresses.
+# FallbackTimeservers =
index 2558d994fc6c5474a480526a20ed7f7f105e19f1..65b7ad035cdb34e1733580c8fb33d46e886b9baa 100644 (file)
@@ -172,6 +172,7 @@ int __connman_timeserver_sync(struct connman_service *default_service)
        char **service_ts;
        char **service_ts_config;
        const char *service_gw;
+       char **fallback_ts;
        int index, i;
 
        if (default_service != NULL)
@@ -227,6 +228,12 @@ int __connman_timeserver_sync(struct connman_service *default_service)
        for (i=0; timeservers != NULL && timeservers[i] != NULL; i++)
                ts_list = g_slist_prepend(ts_list, g_strdup(timeservers[i]));
 
+       fallback_ts = connman_setting_get_string_list("FallbackTimeservers");
+
+       /* Lastly add the fallback servers */
+       for (i=0; fallback_ts != NULL && fallback_ts[i] != NULL; i++)
+               ts_list = g_slist_prepend(ts_list, g_strdup(fallback_ts[i]));
+
        if (ts_list == NULL) {
                DBG("No timeservers set.");
                return 0;