mirror of
https://gitlab.com/chrony/chrony.git
synced 2025-12-04 21:35:07 -05:00
Compare commits
5 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b8d546a0d1 | ||
|
|
04e6474b75 | ||
|
|
eb51c500e8 | ||
|
|
6f8fba9a3f | ||
|
|
750afc30f2 |
6
conf.c
6
conf.c
@@ -1335,7 +1335,11 @@ parse_include(char *line)
|
|||||||
|
|
||||||
check_number_of_args(line, 1);
|
check_number_of_args(line, 1);
|
||||||
|
|
||||||
if ((r = glob(line, GLOB_ERR | GLOB_NOMAGIC, NULL, &gl)) != 0) {
|
if ((r = glob(line,
|
||||||
|
#ifdef GLOB_NOMAGIC
|
||||||
|
GLOB_NOMAGIC |
|
||||||
|
#endif
|
||||||
|
GLOB_ERR, NULL, &gl)) != 0) {
|
||||||
if (r != GLOB_NOMATCH)
|
if (r != GLOB_NOMATCH)
|
||||||
LOG_FATAL("Could not search for files matching %s", line);
|
LOG_FATAL("Could not search for files matching %s", line);
|
||||||
|
|
||||||
|
|||||||
@@ -500,7 +500,7 @@ This option specifies the width of the pulses (in seconds). It is used to
|
|||||||
filter PPS samples when the driver provides samples for both rising and falling
|
filter PPS samples when the driver provides samples for both rising and falling
|
||||||
edges. Note that it reduces the maximum allowed error of the time source which
|
edges. Note that it reduces the maximum allowed error of the time source which
|
||||||
completes the PPS samples. If the duty cycle is configurable, 50% should be
|
completes the PPS samples. If the duty cycle is configurable, 50% should be
|
||||||
prefered in order to maximise the allowed error.
|
preferred in order to maximise the allowed error.
|
||||||
*pps*:::
|
*pps*:::
|
||||||
This options forces *chronyd* to treat any refclock (e.g. SHM or PHC) as a PPS
|
This options forces *chronyd* to treat any refclock (e.g. SHM or PHC) as a PPS
|
||||||
refclock. This can be useful when the refclock provides time with a variable
|
refclock. This can be useful when the refclock provides time with a variable
|
||||||
|
|||||||
@@ -28,6 +28,9 @@ rtcsync
|
|||||||
# Specify file containing keys for NTP authentication.
|
# Specify file containing keys for NTP authentication.
|
||||||
#keyfile /etc/chrony.keys
|
#keyfile /etc/chrony.keys
|
||||||
|
|
||||||
|
# Get TAI-UTC offset and leap seconds from the system tz database.
|
||||||
|
#leapsectz right/UTC
|
||||||
|
|
||||||
# Specify directory for log files.
|
# Specify directory for log files.
|
||||||
logdir /var/log/chrony
|
logdir /var/log/chrony
|
||||||
|
|
||||||
|
|||||||
@@ -97,6 +97,12 @@ driftfile /var/lib/chrony/drift
|
|||||||
|
|
||||||
! pidfile /var/run/chronyd.pid
|
! pidfile /var/run/chronyd.pid
|
||||||
|
|
||||||
|
# If the system timezone database is kept up to date and includes the
|
||||||
|
# right/UTC timezone, chronyd can use it to determine the current
|
||||||
|
# TAI-UTC offset and when will the next leap second occur.
|
||||||
|
|
||||||
|
! leapsectz right/UTC
|
||||||
|
|
||||||
#######################################################################
|
#######################################################################
|
||||||
### INITIAL CLOCK CORRECTION
|
### INITIAL CLOCK CORRECTION
|
||||||
# This option is useful to quickly correct the clock on start if it's
|
# This option is useful to quickly correct the clock on start if it's
|
||||||
|
|||||||
19
reference.c
19
reference.c
@@ -609,7 +609,14 @@ is_offset_ok(double offset)
|
|||||||
/* ================================================== */
|
/* ================================================== */
|
||||||
|
|
||||||
static int
|
static int
|
||||||
is_leap_second_day(struct tm *stm) {
|
is_leap_second_day(time_t when)
|
||||||
|
{
|
||||||
|
struct tm *stm;
|
||||||
|
|
||||||
|
stm = gmtime(&when);
|
||||||
|
if (!stm)
|
||||||
|
return 0;
|
||||||
|
|
||||||
/* Allow leap second only on the last day of June and December */
|
/* Allow leap second only on the last day of June and December */
|
||||||
return (stm->tm_mon == 5 && stm->tm_mday == 30) ||
|
return (stm->tm_mon == 5 && stm->tm_mday == 30) ||
|
||||||
(stm->tm_mon == 11 && stm->tm_mday == 31);
|
(stm->tm_mon == 11 && stm->tm_mday == 31);
|
||||||
@@ -624,7 +631,7 @@ get_tz_leap(time_t when, int *tai_offset)
|
|||||||
static NTP_Leap tz_leap;
|
static NTP_Leap tz_leap;
|
||||||
static int tz_tai_offset;
|
static int tz_tai_offset;
|
||||||
|
|
||||||
struct tm stm;
|
struct tm stm, *tm;
|
||||||
time_t t;
|
time_t t;
|
||||||
char *tz_env, tz_orig[128];
|
char *tz_env, tz_orig[128];
|
||||||
|
|
||||||
@@ -639,7 +646,11 @@ get_tz_leap(time_t when, int *tai_offset)
|
|||||||
tz_leap = LEAP_Normal;
|
tz_leap = LEAP_Normal;
|
||||||
tz_tai_offset = 0;
|
tz_tai_offset = 0;
|
||||||
|
|
||||||
stm = *gmtime(&when);
|
tm = gmtime(&when);
|
||||||
|
if (!tm)
|
||||||
|
return tz_leap;
|
||||||
|
|
||||||
|
stm = *tm;
|
||||||
|
|
||||||
/* Temporarily switch to the timezone containing leap seconds */
|
/* Temporarily switch to the timezone containing leap seconds */
|
||||||
tz_env = getenv("TZ");
|
tz_env = getenv("TZ");
|
||||||
@@ -784,7 +795,7 @@ update_leap_status(NTP_Leap leap, time_t now, int reset)
|
|||||||
if (leap == LEAP_InsertSecond || leap == LEAP_DeleteSecond) {
|
if (leap == LEAP_InsertSecond || leap == LEAP_DeleteSecond) {
|
||||||
/* Check that leap second is allowed today */
|
/* Check that leap second is allowed today */
|
||||||
|
|
||||||
if (is_leap_second_day(gmtime(&now))) {
|
if (is_leap_second_day(now)) {
|
||||||
if (leap == LEAP_InsertSecond) {
|
if (leap == LEAP_InsertSecond) {
|
||||||
leap_sec = 1;
|
leap_sec = 1;
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@@ -134,8 +134,8 @@ test_unit(void)
|
|||||||
UTI_GetRandomBytes(&key, sizeof (key));
|
UTI_GetRandomBytes(&key, sizeof (key));
|
||||||
if (KEY_KeyKnown(key))
|
if (KEY_KeyKnown(key))
|
||||||
continue;
|
continue;
|
||||||
TEST_CHECK(!KEY_GenerateAuth(j, data, data_len, auth, sizeof (auth)));
|
TEST_CHECK(!KEY_GenerateAuth(key, data, data_len, auth, sizeof (auth)));
|
||||||
TEST_CHECK(!KEY_CheckAuth(j, data, data_len, auth, auth_len, auth_len));
|
TEST_CHECK(!KEY_CheckAuth(key, data, data_len, auth, auth_len, auth_len));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user