When authentication is enabled for an NTP source, unauthenticated NTP sources need to be disabled or limited in selection. That might be difficult to do when the configuration comes from different sources (e.g. networking scripts adding servers from DHCP). Define four modes for the source selection to consider authentication: require, prefer, mix, ignore. In different modes different selection options (require, trust, noselect) are added to authenticated and unauthenticated sources. The mode can be selected by the authselectmode directive. The mix mode is the default. The ignore mode enables the old behavior, where all sources are used exactly as specified in the configuration.
157 lines
5.3 KiB
C
157 lines
5.3 KiB
C
/*
|
|
chronyd/chronyc - Programs for keeping computer clocks accurate.
|
|
|
|
**********************************************************************
|
|
* Copyright (C) Richard P. Curnow 1997-2003
|
|
* Copyright (C) Miroslav Lichvar 2013-2014
|
|
*
|
|
* This program is free software; you can redistribute it and/or modify
|
|
* it under the terms of version 2 of the GNU General Public License as
|
|
* published by the Free Software Foundation.
|
|
*
|
|
* This program is distributed in the hope that it will be useful, but
|
|
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
* General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU General Public License along
|
|
* with this program; if not, write to the Free Software Foundation, Inc.,
|
|
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|
*
|
|
**********************************************************************
|
|
|
|
=======================================================================
|
|
|
|
Header file for configuration module
|
|
*/
|
|
|
|
#ifndef GOT_CONF_H
|
|
#define GOT_CONF_H
|
|
|
|
#include "addressing.h"
|
|
#include "reference.h"
|
|
#include "sources.h"
|
|
|
|
extern void CNF_Initialise(int restarted, int client_only);
|
|
extern void CNF_Finalise(void);
|
|
|
|
extern char *CNF_GetRtcDevice(void);
|
|
|
|
extern void CNF_ReadFile(const char *filename);
|
|
extern void CNF_ParseLine(const char *filename, int number, char *line);
|
|
|
|
extern void CNF_CreateDirs(uid_t uid, gid_t gid);
|
|
|
|
extern void CNF_AddInitSources(void);
|
|
extern void CNF_AddSources(void);
|
|
extern void CNF_AddBroadcasts(void);
|
|
extern void CNF_AddRefclocks(void);
|
|
|
|
extern int CNF_GetAcquisitionPort(void);
|
|
extern int CNF_GetNTPPort(void);
|
|
extern char *CNF_GetDriftFile(void);
|
|
extern char *CNF_GetLogDir(void);
|
|
extern char *CNF_GetDumpDir(void);
|
|
extern int CNF_GetLogBanner(void);
|
|
extern int CNF_GetLogMeasurements(int *raw);
|
|
extern int CNF_GetLogStatistics(void);
|
|
extern int CNF_GetLogTracking(void);
|
|
extern int CNF_GetLogRtc(void);
|
|
extern int CNF_GetLogRefclocks(void);
|
|
extern int CNF_GetLogTempComp(void);
|
|
extern char *CNF_GetKeysFile(void);
|
|
extern char *CNF_GetRtcFile(void);
|
|
extern int CNF_GetManualEnabled(void);
|
|
extern int CNF_GetCommandPort(void);
|
|
extern int CNF_GetRtcOnUtc(void);
|
|
extern int CNF_GetRtcSync(void);
|
|
extern void CNF_GetMakeStep(int *limit, double *threshold);
|
|
extern void CNF_GetMaxChange(int *delay, int *ignore, double *offset);
|
|
extern double CNF_GetLogChange(void);
|
|
extern void CNF_GetMailOnChange(int *enabled, double *threshold, char **user);
|
|
extern int CNF_GetNoClientLog(void);
|
|
extern unsigned long CNF_GetClientLogLimit(void);
|
|
extern void CNF_GetFallbackDrifts(int *min, int *max);
|
|
extern void CNF_GetBindAddress(int family, IPAddr *addr);
|
|
extern void CNF_GetBindAcquisitionAddress(int family, IPAddr *addr);
|
|
extern void CNF_GetBindCommandAddress(int family, IPAddr *addr);
|
|
extern char *CNF_GetBindCommandPath(void);
|
|
extern char *CNF_GetNtpSigndSocket(void);
|
|
extern char *CNF_GetPidFile(void);
|
|
extern REF_LeapMode CNF_GetLeapSecMode(void);
|
|
extern char *CNF_GetLeapSecTimezone(void);
|
|
|
|
/* Value returned in ppm, as read from file */
|
|
extern double CNF_GetMaxUpdateSkew(void);
|
|
extern double CNF_GetMaxClockError(void);
|
|
extern double CNF_GetMaxDrift(void);
|
|
extern double CNF_GetCorrectionTimeRatio(void);
|
|
extern double CNF_GetMaxSlewRate(void);
|
|
|
|
extern SRC_AuthSelectMode CNF_GetAuthSelectMode(void);
|
|
extern double CNF_GetMaxDistance(void);
|
|
extern double CNF_GetMaxJitter(void);
|
|
extern double CNF_GetReselectDistance(void);
|
|
extern double CNF_GetStratumWeight(void);
|
|
extern double CNF_GetCombineLimit(void);
|
|
|
|
extern int CNF_AllowLocalReference(int *stratum, int *orphan, double *distance);
|
|
|
|
extern void CNF_SetupAccessRestrictions(void);
|
|
|
|
extern int CNF_GetSchedPriority(void);
|
|
extern int CNF_GetLockMemory(void);
|
|
|
|
extern int CNF_GetNTPRateLimit(int *interval, int *burst, int *leak);
|
|
extern int CNF_GetCommandRateLimit(int *interval, int *burst, int *leak);
|
|
extern void CNF_GetSmooth(double *max_freq, double *max_wander, int *leap_only);
|
|
extern void CNF_GetTempComp(char **file, double *interval, char **point_file, double *T0, double *k0, double *k1, double *k2);
|
|
|
|
extern char *CNF_GetUser(void);
|
|
|
|
extern int CNF_GetMaxSamples(void);
|
|
extern int CNF_GetMinSamples(void);
|
|
|
|
extern int CNF_GetMinSources(void);
|
|
|
|
extern double CNF_GetRtcAutotrim(void);
|
|
extern char *CNF_GetHwclockFile(void);
|
|
|
|
extern int CNF_GetInitSources(void);
|
|
extern double CNF_GetInitStepThreshold(void);
|
|
|
|
typedef enum {
|
|
CNF_HWTS_RXFILTER_ANY,
|
|
CNF_HWTS_RXFILTER_NONE,
|
|
CNF_HWTS_RXFILTER_NTP,
|
|
CNF_HWTS_RXFILTER_ALL,
|
|
} CNF_HwTs_RxFilter;
|
|
|
|
typedef struct {
|
|
char *name;
|
|
int minpoll;
|
|
int min_samples;
|
|
int max_samples;
|
|
int nocrossts;
|
|
CNF_HwTs_RxFilter rxfilter;
|
|
double precision;
|
|
double tx_comp;
|
|
double rx_comp;
|
|
} CNF_HwTsInterface;
|
|
|
|
extern int CNF_GetHwTsInterface(unsigned int index, CNF_HwTsInterface **iface);
|
|
|
|
extern char *CNF_GetNtsDumpDir(void);
|
|
extern char *CNF_GetNtsNtpServer(void);
|
|
extern char *CNF_GetNtsServerCertFile(void);
|
|
extern char *CNF_GetNtsServerKeyFile(void);
|
|
extern int CNF_GetNtsServerPort(void);
|
|
extern int CNF_GetNtsServerProcesses(void);
|
|
extern int CNF_GetNtsServerConnections(void);
|
|
extern int CNF_GetNtsRefresh(void);
|
|
extern int CNF_GetNtsRotate(void);
|
|
extern char *CNF_GetNtsTrustedCertFile(void);
|
|
extern int CNF_GetNoSystemCert(void);
|
|
extern int CNF_GetNoCertTimeCheck(void);
|
|
|
|
#endif /* GOT_CONF_H */
|