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(×erver_notifier);
+
return 0;
}
void __connman_timeserver_cleanup(void)
{
DBG("");
+
+ connman_notifier_unregister(×erver_notifier);
}
--
1.7.5.4
_______________________________________________
connman mailing list
[email protected]
http://lists.connman.net/listinfo/connman