mirror of
https://gitlab.com/chrony/chrony.git
synced 2025-12-06 09:55:06 -05:00
Add fallback drifts
Fallback drifts are long-term averages of the system clock drift calculated over exponentially increasing intervals. They are used when the clock is unsynchronised to avoid quickly drifting away from true time if there was a short-term deviation in drift before the synchronisation was lost.
This commit is contained in:
25
conf.c
25
conf.c
@@ -92,6 +92,7 @@ static void parse_cmdport(const char *);
|
||||
static void parse_rtconutc(const char *);
|
||||
static void parse_noclientlog(const char *);
|
||||
static void parse_clientloglimit(const char *);
|
||||
static void parse_fallbackdrift(const char *);
|
||||
static void parse_makestep(const char *);
|
||||
static void parse_logchange(const char *);
|
||||
static void parse_mailonchange(const char *);
|
||||
@@ -166,6 +167,10 @@ static int no_client_log = 0;
|
||||
/* Limit memory allocated for the clients log */
|
||||
static unsigned long client_log_limit = 524288;
|
||||
|
||||
/* Minimum and maximum fallback drift intervals */
|
||||
static int fb_drift_min = 0;
|
||||
static int fb_drift_max = 0;
|
||||
|
||||
/* IP addresses for binding the NTP socket to. UNSPEC family means INADDR_ANY
|
||||
will be used */
|
||||
static IPAddr bind_address4, bind_address6;
|
||||
@@ -225,6 +230,7 @@ static const Command commands[] = {
|
||||
{"rtconutc", 8, parse_rtconutc},
|
||||
{"noclientlog", 11, parse_noclientlog},
|
||||
{"clientloglimit", 14, parse_clientloglimit},
|
||||
{"fallbackdrift", 13, parse_fallbackdrift},
|
||||
{"makestep", 8, parse_makestep},
|
||||
{"logchange", 9, parse_logchange},
|
||||
{"mailonchange", 12, parse_mailonchange},
|
||||
@@ -805,6 +811,16 @@ parse_clientloglimit(const char *line)
|
||||
|
||||
/* ================================================== */
|
||||
|
||||
static void
|
||||
parse_fallbackdrift(const char *line)
|
||||
{
|
||||
if (sscanf(line, "%d %d", &fb_drift_min, &fb_drift_max) != 2) {
|
||||
LOG(LOGS_WARN, LOGF_Configure, "Could not read fallback drift intervals at line %d", line_number);
|
||||
}
|
||||
}
|
||||
|
||||
/* ================================================== */
|
||||
|
||||
static void
|
||||
parse_makestep(const char *line)
|
||||
{
|
||||
@@ -1424,6 +1440,15 @@ CNF_GetClientLogLimit(void)
|
||||
|
||||
/* ================================================== */
|
||||
|
||||
void
|
||||
CNF_GetFallbackDrifts(int *min, int *max)
|
||||
{
|
||||
*min = fb_drift_min;
|
||||
*max = fb_drift_max;
|
||||
}
|
||||
|
||||
/* ================================================== */
|
||||
|
||||
void
|
||||
CNF_GetBindAddress(int family, IPAddr *addr)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user