diff options
author | Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> | 2020-07-30 20:47:41 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-07-30 20:47:41 +0200 |
commit | 3660da17b0d6a0954a7e90eaca58d35ae53846e2 (patch) | |
tree | df7477d78461dcdf9553486f62a7947814625f5c /src | |
parent | e7e954243a17cceb5278aac6249ee0dcc119b1eb (diff) | |
parent | 5919bd3df32b2eec0accb54b23fcf0878d3914cd (diff) | |
download | systemd-3660da17b0d6a0954a7e90eaca58d35ae53846e2.tar.gz |
Merge pull request #16624 from keszybz/timesync-retry-interval
Make timesyncd retry interval grow more slowly
Diffstat (limited to 'src')
-rw-r--r-- | src/timedate/timedatectl.c | 2 | ||||
-rw-r--r-- | src/timesync/timesyncd-manager.c | 9 | ||||
-rw-r--r-- | src/timesync/timesyncd-manager.h | 3 |
3 files changed, 8 insertions, 6 deletions
diff --git a/src/timedate/timedatectl.c b/src/timedate/timedatectl.c index 26d3e20353..7afc37d9e3 100644 --- a/src/timedate/timedatectl.c +++ b/src/timedate/timedatectl.c @@ -409,7 +409,7 @@ static int print_ntp_status_info(NTPStatusInfo *i) { if (r < 0) return table_log_add_error(r); - r = table_add_cell_stringf(table, NULL, "%s (%s)", i->server_address, i->server_name); + r = table_add_cell_stringf(table, NULL, "%s (%s)", strna(i->server_address), strna(i->server_name)); if (r < 0) return table_log_add_error(r); diff --git a/src/timesync/timesyncd-manager.c b/src/timesync/timesyncd-manager.c index dadf213a80..5570408fa1 100644 --- a/src/timesync/timesyncd-manager.c +++ b/src/timesync/timesyncd-manager.c @@ -137,11 +137,10 @@ static int manager_send_request(Manager *m) { } /* re-arm timer with increasing timeout, in case the packets never arrive back */ - if (m->retry_interval > 0) { - if (m->retry_interval < m->poll_interval_max_usec) - m->retry_interval *= 2; - } else - m->retry_interval = m->poll_interval_min_usec; + if (m->retry_interval == 0) + m->retry_interval = NTP_RETRY_INTERVAL_MIN_USEC; + else + m->retry_interval = MIN(m->retry_interval * 4/3, NTP_RETRY_INTERVAL_MAX_USEC); r = manager_arm_timer(m, m->retry_interval); if (r < 0) diff --git a/src/timesync/timesyncd-manager.h b/src/timesync/timesyncd-manager.h index 97c4e2ff34..d74521c9cf 100644 --- a/src/timesync/timesyncd-manager.h +++ b/src/timesync/timesyncd-manager.h @@ -24,6 +24,9 @@ typedef struct Manager Manager; #define NTP_POLL_INTERVAL_MIN_USEC (32 * USEC_PER_SEC) #define NTP_POLL_INTERVAL_MAX_USEC (2048 * USEC_PER_SEC) +#define NTP_RETRY_INTERVAL_MIN_USEC (15 * USEC_PER_SEC) +#define NTP_RETRY_INTERVAL_MAX_USEC (6 * 60 * USEC_PER_SEC) /* 6 minutes */ + struct Manager { sd_bus *bus; sd_event *event; |