mirror of
https://github.com/systemd/systemd-stable.git
synced 2024-12-22 13:33:56 +03:00
core: allow disabling system time correction if rtc returns time far in the future
There might be (embedded) systems that get never updated (things like
e.g. entertainment systems of trains, for example) and where the adjustment of
the system clock (introduced by b10abe4bba
) would
do the wrong thing even if the difference between the systemd build time and
the rtc is 15 years or more.
This patch allows disabling the adjustment by setting
'clock-valid-range-usec-max' meson option to 0 or to a negative value.
This commit is contained in:
parent
34683dbdd0
commit
2306b4656a
@ -223,7 +223,7 @@ option('status-unit-format-default', type : 'combo',
|
||||
option('time-epoch', type : 'integer', value : 0,
|
||||
description : 'time epoch for time clients')
|
||||
option('clock-valid-range-usec-max', type : 'integer', value : 473364000000000, # 15 years
|
||||
description : 'maximum value in microseconds for the difference between RTC and epoch, exceeding which is considered an RTC error')
|
||||
description : 'maximum value in microseconds for the difference between RTC and epoch, exceeding which is considered an RTC error ["0" disables]')
|
||||
option('default-user-shell', type : 'string', value : '/bin/bash',
|
||||
description : 'default interactive shell')
|
||||
|
||||
|
@ -153,7 +153,7 @@ int clock_apply_epoch(ClockChangeDirection *ret_attempted_change) {
|
||||
now_usec = now(CLOCK_REALTIME);
|
||||
if (now_usec < epoch_usec)
|
||||
*ret_attempted_change = CLOCK_CHANGE_FORWARD;
|
||||
else if (now_usec > usec_add(epoch_usec, CLOCK_VALID_RANGE_USEC_MAX))
|
||||
else if (CLOCK_VALID_RANGE_USEC_MAX > 0 && now_usec > usec_add(epoch_usec, CLOCK_VALID_RANGE_USEC_MAX))
|
||||
*ret_attempted_change = CLOCK_CHANGE_BACKWARD;
|
||||
else {
|
||||
*ret_attempted_change = CLOCK_CHANGE_NOOP;
|
||||
|
Loading…
Reference in New Issue
Block a user