From: Miroslav Lichvar Date: Tue, 14 Oct 2014 15:24:41 +0000 (+0200) Subject: ntp: define NTP_MAX_STRATUM for other modules X-Git-Tag: 2.0-pre1~73 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e0059bcc6be58237ff3af43c8f64fa55eb3406b3;p=thirdparty%2Fchrony.git ntp: define NTP_MAX_STRATUM for other modules --- diff --git a/broadcast.c b/broadcast.c index ca12eec9..30e19f13 100644 --- a/broadcast.c +++ b/broadcast.c @@ -90,6 +90,9 @@ timeout_handler(void *arbitrary) leap = LEAP_Unsynchronised; } + if (our_stratum >= NTP_MAX_STRATUM) + our_stratum = 0; + message.lvm = NTP_LVM(leap, NTP_VERSION, MODE_BROADCAST); message.stratum = our_stratum; message.poll = 6; /* FIXME: what should this be? */ diff --git a/ntp.h b/ntp.h index d06b1903..0e012be3 100644 --- a/ntp.h +++ b/ntp.h @@ -41,6 +41,9 @@ typedef uint32_t NTP_int32; /* The NTP protocol version that we support */ #define NTP_VERSION 4 +/* Maximum stratum number (infinity) */ +#define NTP_MAX_STRATUM 16 + /* The minimum valid length of an extension field */ #define NTP_MIN_EXTENSION_LENGTH 16 diff --git a/ntp_core.c b/ntp_core.c index 599b3fb7..08043cdc 100644 --- a/ntp_core.c +++ b/ntp_core.c @@ -201,9 +201,6 @@ struct NCR_Instance_Record { /* Maximum allowed dispersion - as defined in RFC 5905 (16 seconds) */ #define NTP_MAX_DISPERSION 16.0 -/* Maximum stratum number */ -#define NTP_MAX_STRATUM 16 - /* Invalid stratum number */ #define NTP_INVALID_STRATUM 0 diff --git a/reference.c b/reference.c index 494bfe96..62489f0d 100644 --- a/reference.c +++ b/reference.c @@ -1089,7 +1089,7 @@ REF_GetReferenceParams *is_synchronised = 0; *leap_status = LEAP_Unsynchronised; - *stratum = 0; + *stratum = NTP_MAX_STRATUM; *ref_id = 0; ref_time->tv_sec = ref_time->tv_usec = 0; /* These values seem to be standard for a client, and @@ -1111,7 +1111,7 @@ REF_GetOurStratum(void) } else if (enable_local_stratum) { return local_stratum; } else { - return 16; + return NTP_MAX_STRATUM; } }