diff --git a/ntp_core.c b/ntp_core.c index 65ad5e6..022099c 100644 --- a/ntp_core.c +++ b/ntp_core.c @@ -508,8 +508,8 @@ NCR_GetInstance(NTP_Remote_Address *remote_addr, NTP_Source_Type type, SourcePar /* Presend doesn't work in symmetric mode */ result->presend_minpoll = params->presend_minpoll; - if (result->presend_minpoll && result->mode != MODE_CLIENT) - result->presend_minpoll = 0; + if (result->presend_minpoll <= MAX_POLL && result->mode != MODE_CLIENT) + result->presend_minpoll = MAX_POLL + 1; result->max_delay = params->max_delay; result->max_delay_ratio = params->max_delay_ratio; @@ -1052,9 +1052,7 @@ transmit_timeout(void *arg) sending an NTP exchange to ensure both ends' ARP caches are primed or whether we need to send two packets first to ensure a server in the interleaved mode has a fresh timestamp for us. */ - if ((inst->presend_minpoll > 0) && - (inst->presend_minpoll <= inst->local_poll) && - !inst->presend_done) { + if (inst->presend_minpoll <= inst->local_poll && !inst->presend_done) { inst->presend_done = inst->interleaved ? 2 : 1; } else if (inst->presend_done > 0) { inst->presend_done--; diff --git a/srcparams.h b/srcparams.h index 5b39052..6825c36 100644 --- a/srcparams.h +++ b/srcparams.h @@ -54,7 +54,7 @@ typedef struct { #define SRC_DEFAULT_PORT 123 #define SRC_DEFAULT_MINPOLL 6 #define SRC_DEFAULT_MAXPOLL 10 -#define SRC_DEFAULT_PRESEND_MINPOLL 0 +#define SRC_DEFAULT_PRESEND_MINPOLL 100 #define SRC_DEFAULT_MAXDELAY 3.0 #define SRC_DEFAULT_MAXDELAYRATIO 0.0 #define SRC_DEFAULT_MAXDELAYDEVRATIO 10.0