mirror of
https://gitlab.com/chrony/chrony.git
synced 2025-12-05 15:45:06 -05:00
ntp: fix poll interleaving with unsynchronised peers
Update the remote poll and remote stratum even for unsychronised peers, and handle stratum of 0 as 16, so the peers work with the opposite differences between their strata and can adjust their polling intervals in order to interleave the packets.
This commit is contained in:
@@ -1575,9 +1575,11 @@ receive_packet(NCR_Instance inst, NTP_Local_Address *local_addr,
|
|||||||
!UTI_CompareTimespecs(&inst->local_rx.ts, &rx_ts->ts));
|
!UTI_CompareTimespecs(&inst->local_rx.ts, &rx_ts->ts));
|
||||||
|
|
||||||
if (valid_packet) {
|
if (valid_packet) {
|
||||||
|
inst->remote_poll = message->poll;
|
||||||
|
inst->remote_stratum = message->stratum != NTP_INVALID_STRATUM ?
|
||||||
|
message->stratum : NTP_MAX_STRATUM;
|
||||||
|
|
||||||
if (synced_packet) {
|
if (synced_packet) {
|
||||||
inst->remote_poll = message->poll;
|
|
||||||
inst->remote_stratum = message->stratum;
|
|
||||||
inst->tx_count = 0;
|
inst->tx_count = 0;
|
||||||
SRC_UpdateReachability(inst->source, 1);
|
SRC_UpdateReachability(inst->source, 1);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user