ntp: check RX and TX timestamp in interleaved client requests
Clients sending packets in the interleaved mode are supposed to use a different receive and transmit timestamp in order to reliably detect the mode of the response. If an interleaved request with the receive timestamp equal to the transmit timestamp is detected, respond in the basic mode.
This commit is contained in:
parent
d2a96f5fbc
commit
c6dd749687
1 changed files with 2 additions and 1 deletions
|
@ -2129,7 +2129,8 @@ NCR_ProcessRxUnknown(NTP_Remote_Address *remote_addr, NTP_Local_Address *local_a
|
|||
if (log_index >= 0) {
|
||||
CLG_GetNtpTimestamps(log_index, &local_ntp_rx, &local_ntp_tx);
|
||||
interleaved = !UTI_IsZeroNtp64(local_ntp_rx) &&
|
||||
!UTI_CompareNtp64(&message->originate_ts, local_ntp_rx);
|
||||
!UTI_CompareNtp64(&message->originate_ts, local_ntp_rx) &&
|
||||
UTI_CompareNtp64(&message->receive_ts, &message->transmit_ts);
|
||||
|
||||
if (interleaved) {
|
||||
UTI_Ntp64ToTimespec(local_ntp_tx, &local_tx.ts);
|
||||
|
|
Loading…
Reference in a new issue