aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Christian Hesse <mail@eworm.de>2023-06-22 14:21:52 +0200
committerGravatar Christian Hesse <mail@eworm.de>2023-06-22 22:45:32 +0200
commit64698253983f4ea608b31eb46fb4ac11fc9a156c (patch)
treeda67a9e69749888944c912f051474bceba37ec1b
parente7d9a94ad8ec93cd67111a7c6b912124f95d8c00 (diff)
global-functions: $IsTimeSync: reset ntp client when "waiting"
Every now and then the ntp client stays in status "waiting" forever... This happens if the server answers, but is not accurate enough. Unlike with connection failure the address is not rotated. (SUP-120012) Let's reset it... Should help with a pool address (like pool.ntp.org) at least.
-rw-r--r--global-functions.rsc13
1 files changed, 13 insertions, 0 deletions
diff --git a/global-functions.rsc b/global-functions.rsc
index 98f6978..bdab5a2 100644
--- a/global-functions.rsc
+++ b/global-functions.rsc
@@ -504,6 +504,7 @@
# check if system time is sync
:set IsTimeSync do={
:global IsTimeSyncCached;
+ :global IsTimeSyncResetNtp;
:global LogPrintExit2;
@@ -516,6 +517,18 @@
:set IsTimeSyncCached true;
:return true;
}
+
+ :if ([ /system/resource/get uptime ] < 3m || $IsTimeSyncResetNtp = true) do={
+ :return false;
+ }
+
+ :set IsTimeSyncResetNtp true;
+ /system/ntp/client/set enabled=no;
+ :delay 20ms;
+ /system/ntp/client/set enabled=yes;
+ /system/scheduler/add name="clear-IsTimeSyncResetNtp" interval=1m \
+ on-event=("/system/scheduler/remove clear-IsTimeSyncResetNtp; " . \
+ ":global IsTimeSyncResetNtp; :set IsTimeSyncResetNtp;");
:return false;
}