mirror of
https://github.com/systemd/systemd-stable.git
synced 2024-10-27 18:55:09 +03:00
Revert "timesyncd: remove retry_timer logic which is covered by the server timeout"
This reverts commit 665c6a9eab
.
On Tue, Sep 2, 2014 at 3:17 PM, Miroslav Lichvar <mlichvar@redhat.com> wrote:
>
> With the other patch allowing missed replies included it's now getting
> stuck as there is no timer to send the 2nd and 3rd request.
This commit is contained in:
parent
80cd2606b9
commit
ab4df227d4
@ -209,6 +209,19 @@ static int manager_send_request(Manager *m) {
|
||||
return manager_connect(m);
|
||||
}
|
||||
|
||||
/* re-arm timer with increasing timeout, in case the packets never arrive back */
|
||||
if (m->retry_interval > 0) {
|
||||
if (m->retry_interval < NTP_POLL_INTERVAL_MAX_SEC * USEC_PER_SEC)
|
||||
m->retry_interval *= 2;
|
||||
} else
|
||||
m->retry_interval = NTP_POLL_INTERVAL_MIN_SEC * USEC_PER_SEC;
|
||||
|
||||
r = manager_arm_timer(m, m->retry_interval);
|
||||
if (r < 0) {
|
||||
log_error("Failed to rearm timer: %s", strerror(-r));
|
||||
return r;
|
||||
}
|
||||
|
||||
m->missed_replies++;
|
||||
if (m->missed_replies > NTP_MAX_MISSED_REPLIES) {
|
||||
r = sd_event_add_time(
|
||||
@ -596,6 +609,7 @@ static int manager_receive_response(sd_event_source *source, int fd, uint32_t re
|
||||
|
||||
/* valid packet */
|
||||
m->pending = false;
|
||||
m->retry_interval = 0;
|
||||
|
||||
/* announce leap seconds */
|
||||
if (NTP_FIELD_LEAP(ntpmsg.field) & NTP_LEAP_PLUSSEC)
|
||||
|
@ -60,6 +60,7 @@ struct Manager {
|
||||
/* last sent packet */
|
||||
struct timespec trans_time_mon;
|
||||
struct timespec trans_time;
|
||||
usec_t retry_interval;
|
||||
bool pending;
|
||||
|
||||
/* poll timer */
|
||||
|
Loading…
Reference in New Issue
Block a user