aboutsummaryrefslogtreecommitdiffstats
path: root/examples/source-router/ntpclient
diff options
context:
space:
mode:
authorLaurent Bercot <ska-skaware@skarnet.org>2026-01-23 06:49:25 +0000
committerLaurent Bercot <ska-skaware@skarnet.org>2026-01-23 06:49:25 +0000
commit1aa3bc74170f10a4285827efa2748d1d6c2e4613 (patch)
tree3fc6b79944f119dddf85a1cf8758cfbbab607cbe /examples/source-router/ntpclient
parent3c61b2916c56bfa8d3ce7a6a5480eb93c2ed1470 (diff)
downloads6-rc-1aa3bc74170f10a4285827efa2748d1d6c2e4613.tar.gz
New example batch of service definitions
Diffstat (limited to 'examples/source-router/ntpclient')
-rw-r--r--examples/source-router/ntpclient/dependencies.d/dns-cache0
-rw-r--r--examples/source-router/ntpclient/dependencies.d/init-clock0
-rw-r--r--examples/source-router/ntpclient/notification-fd1
-rw-r--r--examples/source-router/ntpclient/producer-for1
-rwxr-xr-xexamples/source-router/ntpclient/run56
-rw-r--r--examples/source-router/ntpclient/type1
6 files changed, 59 insertions, 0 deletions
diff --git a/examples/source-router/ntpclient/dependencies.d/dns-cache b/examples/source-router/ntpclient/dependencies.d/dns-cache
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/ntpclient/dependencies.d/dns-cache
diff --git a/examples/source-router/ntpclient/dependencies.d/init-clock b/examples/source-router/ntpclient/dependencies.d/init-clock
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/examples/source-router/ntpclient/dependencies.d/init-clock
diff --git a/examples/source-router/ntpclient/notification-fd b/examples/source-router/ntpclient/notification-fd
new file mode 100644
index 0000000..00750ed
--- /dev/null
+++ b/examples/source-router/ntpclient/notification-fd
@@ -0,0 +1 @@
+3
diff --git a/examples/source-router/ntpclient/producer-for b/examples/source-router/ntpclient/producer-for
new file mode 100644
index 0000000..c51cd0b
--- /dev/null
+++ b/examples/source-router/ntpclient/producer-for
@@ -0,0 +1 @@
+ntpclient-log
diff --git a/examples/source-router/ntpclient/run b/examples/source-router/ntpclient/run
new file mode 100755
index 0000000..8ded1c1
--- /dev/null
+++ b/examples/source-router/ntpclient/run
@@ -0,0 +1,56 @@
+#!/command/execlineb -P
+
+fdmove -c 2 1
+
+
+# Get the IP addresses for some NTP servers.
+# Limit the DNS queries to 30 seconds: if the DNS is slower than
+# that, chances are the server isn't good for us anyway.
+# All the queries are parallelized, so it's fast.
+
+pipeline
+{
+ s6-setuidgid nobody
+ forx -p I { 0 1 2 }
+ importas -u I I
+ s6-dnsip4 -t 30000 -- ${I}.fr.pool.ntp.org
+}
+importas -u p1 !
+
+
+# Ask for a NTP exchange with the servers we get.
+# If the exchange can't be completed in 5 seconds, kill it.
+# All the queries are parallelized.
+
+pipeline
+{
+ s6-setuidgid ntp
+ forstdin -p -d"\n" NTPSERVERIP
+ importas -u NTPSERVERIP NTPSERVERIP
+ s6-sntpclock -T 5000 ${NTPSERVERIP}
+}
+importas -u p2 !
+
+
+# Take the first answer we get
+
+pipeline
+{
+ s6-setuidgid nobody
+ s6-head -Sc 12
+}
+importas -u p3 !
+
+
+# Update the system clock. Accept 10 minutes of discrepancy.
+
+if { s6-clockadd -e 600000 }
+
+
+# Success. Send a readiness notification, reap zombies,
+# and sleep for 4 hours.
+
+s6-setuidgid nobody
+if { fdmove 1 3 s6-echo }
+wait { ${p1} ${p2} ${p3} }
+s6-sleep 14400
diff --git a/examples/source-router/ntpclient/type b/examples/source-router/ntpclient/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/examples/source-router/ntpclient/type
@@ -0,0 +1 @@
+longrun