diff --git a/ntp_core.c b/ntp_core.c index 2b2b78e..3b21f36 100644 --- a/ntp_core.c +++ b/ntp_core.c @@ -2302,7 +2302,7 @@ process_response(NCR_Instance inst, int saved, NTP_Local_Address *local_addr, inst->local_tx.net_correction = net_correction; /* Don't use the same set of timestamps for the next sample */ - if (interleaved_packet) + if (interleaved_packet || inst->presend_done > 0) inst->prev_local_tx = inst->local_tx; else zero_local_timestamp(&inst->prev_local_tx); diff --git a/test/simulation/114-presend b/test/simulation/114-presend index 19400ab..3b89a70 100755 --- a/test/simulation/114-presend +++ b/test/simulation/114-presend @@ -23,4 +23,29 @@ check_source_selection || test_fail check_packet_interval || test_fail check_sync || test_fail +limit=10 +base_delay=$default_base_delay +client_conf="logdir tmp +log measurements" + +client_server_options="presend 5" + +run_test || test_fail +check_chronyd_exit || test_fail +check_packet_interval || test_fail + +check_file_messages "20.*123\.1.* 111 111 0111" 1 1 measurements.log || test_fail +check_file_messages "20.*123\.1.* 111 111 1111" 1 1 measurements.log || test_fail +rm -f tmp/measurements.log + +client_server_options="presend 5 xleave" + +run_test || test_fail +check_chronyd_exit || test_fail +check_packet_interval || test_fail + +check_file_messages "20.*123\.1.* 111 111 0111" 2 2 measurements.log || test_fail +check_file_messages "20.*123\.1.* 111 111 1111" 1 1 measurements.log || test_fail +rm -f tmp/measurements.log + test_pass