]> git.ipfire.org Git - thirdparty/chrony.git/commitdiff
ntp: allow presend of zero
authorMiroslav Lichvar <mlichvar@redhat.com>
Wed, 23 Nov 2016 15:48:27 +0000 (16:48 +0100)
committerMiroslav Lichvar <mlichvar@redhat.com>
Fri, 25 Nov 2016 16:33:42 +0000 (17:33 +0100)
Don't use zero as a special value for disabled and change the default
presend to a value larger than any valid poll.

ntp_core.c
srcparams.h

index 65ad5e6b6cda01f300780f81ec9ddd3c2b110a7f..022099c52208e87a5c390366e559467eb22e754a 100644 (file)
@@ -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--;
index 5b390523de354eb1e5c08fddf5b7b5b7f2ad4a30..6825c36ec61fff7c97c933273aa2db3caf12bdd5 100644 (file)
@@ -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