From: Alok Barsode <[email protected]>

Add Timeservers.Configuration timerservers (if any) to the list of
timeservers for time correction query. Now the Order is
Timeserver.Config (via the user), service timeserver (via DHCP).
default gateway (system), global timeservers (via the user).
---
 src/service.c    |    2 ++
 src/timeserver.c |   10 ++++++++++
 2 files changed, 12 insertions(+), 0 deletions(-)

diff --git a/src/service.c b/src/service.c
index 98df541..def4066 100644
--- a/src/service.c
+++ b/src/service.c
@@ -2816,6 +2816,8 @@ static DBusMessage *set_property(DBusConnection *conn,
                g_free(str);
 
                service_save(service);
+
+               __connman_timeserver_sync(service);
        } else if (g_str_equal(name, "Domains.Configuration") == TRUE) {
                DBusMessageIter entry;
                GString *str;
diff --git a/src/timeserver.c b/src/timeserver.c
index 2b2585f..16c6475 100644
--- a/src/timeserver.c
+++ b/src/timeserver.c
@@ -36,6 +36,7 @@ static GSList *ts_list = NULL;
 
 static char **service_ts = NULL;
 static const char *service_gw = NULL;
+static char **service_ts_config = NULL;
 
 static GResolv *resolv = NULL;
 static int resolv_id = 0;
@@ -194,6 +195,8 @@ int __connman_timeserver_sync(struct connman_service 
*service)
        if (service != NULL) {
                service_ts = connman_service_get_timeservers(service);
 
+               service_ts_config = 
connman_service_get_timeservers_config(service);
+
                network = __connman_service_get_network(service);
 
                index = connman_network_get_index(network);
@@ -201,6 +204,10 @@ int __connman_timeserver_sync(struct connman_service 
*service)
                service_gw = __connman_ipconfig_get_gateway_from_index(index);
        }
 
+       /* First add Service Timeservers.Configuration to the list */
+       for (i=0; service_ts_config != NULL && service_ts_config[i] != NULL; 
i++)
+               ts_list = g_slist_append(ts_list, 
g_strdup(service_ts_config[i]));
+
        /* First add Service Timeservers via DHCP to the list */
        for (i=0; service_ts != NULL && service_ts[i] != NULL; i++)
                ts_list = g_slist_append(ts_list, g_strdup(service_ts[i]));
@@ -264,6 +271,9 @@ static int timeserver_start(struct connman_service *service)
        /* Cache service timeservers */
        service_ts = connman_service_get_timeservers(service);
 
+       /* Cache service Timeservers.Configuration */
+       service_ts_config = connman_service_get_timeservers_config(service);
+
        network = __connman_service_get_network(service);
 
        i = connman_network_get_index(network);
-- 
1.7.5.4

_______________________________________________
connman mailing list
[email protected]
http://lists.connman.net/listinfo/connman

Reply via email to