ntp: ignore saved remote poll when peer is not responding
When a peer stops responding, allow our actual polling interval to be longer than poll saved from the last valid response.
This commit is contained in:
parent
30e6549692
commit
d0f789425b
1 changed files with 5 additions and 4 deletions
|
@ -260,6 +260,9 @@ static ARR_Instance broadcasts;
|
|||
/* Maximum poll interval set by KoD RATE */
|
||||
#define MAX_KOD_RATE_POLL SRC_DEFAULT_MAXPOLL
|
||||
|
||||
/* Maximum number of missed responses to follow peer's polling interval */
|
||||
#define MAX_PEER_POLL_TX 8
|
||||
|
||||
/* Invalid socket, different from the one in ntp_io.c */
|
||||
#define INVALID_SOCK_FD -2
|
||||
|
||||
|
@ -781,10 +784,8 @@ get_transmit_delay(NCR_Instance inst, int on_tx, double last_tx)
|
|||
/* Use shorter of the local and remote poll interval, but not shorter
|
||||
than the allowed minimum */
|
||||
poll_to_use = inst->local_poll;
|
||||
if (poll_to_use > inst->remote_poll)
|
||||
poll_to_use = inst->remote_poll;
|
||||
if (poll_to_use < inst->minpoll)
|
||||
poll_to_use = inst->minpoll;
|
||||
if (poll_to_use > inst->remote_poll && inst->tx_count < MAX_PEER_POLL_TX)
|
||||
poll_to_use = MAX(inst->remote_poll, inst->minpoll);
|
||||
|
||||
delay_time = UTI_Log2ToDouble(poll_to_use);
|
||||
|
||||
|
|
Loading…
Reference in a new issue