From: Miroslav Lichvar Date: Wed, 23 Nov 2016 15:48:27 +0000 (+0100) Subject: ntp: allow presend of zero X-Git-Tag: 3.0-pre1~48 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=90229984cf44a1427c36c61e89ef3abdee1052f1;p=thirdparty%2Fchrony.git ntp: allow presend of zero Don't use zero as a special value for disabled and change the default presend to a value larger than any valid poll. --- diff --git a/ntp_core.c b/ntp_core.c index 65ad5e6b..022099c5 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 5b390523..6825c36e 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