chiark / gitweb /
timesyncd: only listen to clock changes when connected
authorZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Tue, 15 Jul 2014 13:52:17 +0000 (09:52 -0400)
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Tue, 15 Jul 2014 13:52:19 +0000 (09:52 -0400)
This reverts previous commit and applies a different fix.

manager_clock_watch() callback calls manager_send_request() to kick
off a resync. We can only do that when we're actually connected to
something. It is not useful to setup the callback from manager_new().

Now the callback will be dropped in manager_connect() and requested
in manager_begin().

https://bugs.freedesktop.org/show_bug.cgi?id=80932

src/timesync/timesyncd.c

index 9f1e25c7cfc8821e7c8a1aada7a488dabef18ef5..e15588d1cf23ffc400347eb30d6ebaf94c193e32 100644 (file)
@@ -331,9 +331,6 @@ static int manager_clock_watch(sd_event_source *source, int fd, uint32_t revents
         /* rearm timer */
         manager_clock_watch_setup(m);
 
-        if (!m->current_server_address)
-                return 0;
-
         /* skip our own jumps */
         if (m->jumped) {
                 m->jumped = false;
@@ -1049,10 +1046,6 @@ static int manager_new(Manager **ret) {
         if (r < 0)
                 return r;
 
-        r = manager_clock_watch_setup(m);
-        if (r < 0)
-                return r;
-
         *ret = m;
         m = NULL;