From: Alok Barsode <[email protected]>

Trigger NTP sync on default service going to READY/ONLINE state
instead of triggering NTP sync on ONLINE state only. This makes
sense for local ntp servers even if the wispr check fails.
---
 src/service.c    |    5 -----
 src/timeserver.c |   19 +++++++++++++++++++
 2 files changed, 19 insertions(+), 5 deletions(-)

diff --git a/src/service.c b/src/service.c
index ba35dc9..88a14f8 100644
--- a/src/service.c
+++ b/src/service.c
@@ -4116,9 +4116,6 @@ static int service_indicate_state(struct connman_service 
*service)
                }
        }
 
-       if (new_state == CONNMAN_SERVICE_STATE_ONLINE)
-               __connman_timeserver_sync(service);
-
        if (new_state == CONNMAN_SERVICE_STATE_IDLE) {
                connman_bool_t reconnect;
 
@@ -4188,8 +4185,6 @@ static int service_indicate_state(struct connman_service 
*service)
                dns_changed(service);
                domain_changed(service);
 
-               __connman_timeserver_stop();
-
                __connman_notifier_disconnect(service->type);
 
                /*
diff --git a/src/timeserver.c b/src/timeserver.c
index c50de4e..73d1df9 100644
--- a/src/timeserver.c
+++ b/src/timeserver.c
@@ -254,14 +254,33 @@ char **__connman_timeserver_system_get()
        return servers;
 }
 
+static void default_changed(struct connman_service *service)
+{
+       DBG("");
+
+       if (service != NULL)
+               __connman_timeserver_sync(service);
+       else
+               __connman_timeserver_stop();
+}
+
+static struct connman_notifier timeserver_notifier = {
+       .name                   = "timeserver",
+       .default_changed        = default_changed,
+};
+
 int __connman_timeserver_init(void)
 {
        DBG("");
 
+       connman_notifier_register(&timeserver_notifier);
+
        return 0;
 }
 
 void __connman_timeserver_cleanup(void)
 {
        DBG("");
+
+       connman_notifier_unregister(&timeserver_notifier);
 }
-- 
1.7.5.4

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

Reply via email to