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.
This commit is contained in:
Miroslav Lichvar 2016-11-23 16:48:27 +01:00
parent 2b3d64c31d
commit 90229984cf
2 changed files with 4 additions and 6 deletions

View file

@ -508,8 +508,8 @@ NCR_GetInstance(NTP_Remote_Address *remote_addr, NTP_Source_Type type, SourcePar
/* Presend doesn't work in symmetric mode */ /* Presend doesn't work in symmetric mode */
result->presend_minpoll = params->presend_minpoll; result->presend_minpoll = params->presend_minpoll;
if (result->presend_minpoll && result->mode != MODE_CLIENT) if (result->presend_minpoll <= MAX_POLL && result->mode != MODE_CLIENT)
result->presend_minpoll = 0; result->presend_minpoll = MAX_POLL + 1;
result->max_delay = params->max_delay; result->max_delay = params->max_delay;
result->max_delay_ratio = params->max_delay_ratio; 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 sending an NTP exchange to ensure both ends' ARP caches are
primed or whether we need to send two packets first to ensure a primed or whether we need to send two packets first to ensure a
server in the interleaved mode has a fresh timestamp for us. */ server in the interleaved mode has a fresh timestamp for us. */
if ((inst->presend_minpoll > 0) && if (inst->presend_minpoll <= inst->local_poll && !inst->presend_done) {
(inst->presend_minpoll <= inst->local_poll) &&
!inst->presend_done) {
inst->presend_done = inst->interleaved ? 2 : 1; inst->presend_done = inst->interleaved ? 2 : 1;
} else if (inst->presend_done > 0) { } else if (inst->presend_done > 0) {
inst->presend_done--; inst->presend_done--;

View file

@ -54,7 +54,7 @@ typedef struct {
#define SRC_DEFAULT_PORT 123 #define SRC_DEFAULT_PORT 123
#define SRC_DEFAULT_MINPOLL 6 #define SRC_DEFAULT_MINPOLL 6
#define SRC_DEFAULT_MAXPOLL 10 #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_MAXDELAY 3.0
#define SRC_DEFAULT_MAXDELAYRATIO 0.0 #define SRC_DEFAULT_MAXDELAYRATIO 0.0
#define SRC_DEFAULT_MAXDELAYDEVRATIO 10.0 #define SRC_DEFAULT_MAXDELAYDEVRATIO 10.0