#!/bin/sh
# Note that there is no provision to prevent several copies of the script
# to be run in quick succession. In fact, it happens rather often
# if initial syncronization results in a step.
# You will see "step" and then "stratum" script runs, sometimes
# as close as only 0.002 seconds apart.
#
# Script should be ready to deal with this.

# For other parts of the system which prefer to run only on the stable clock
echo "$1" >rundir/sync_status

dt=`date '+%Y-%m-%d %H:%M:%S'`

echo "`tail -n 199 -- "$0.log" 2>/dev/null`" >"$0.log.$$"

if test x"$1" = x"unsync" \
; then
	# No replies for our NTP requests were seen for some time.
	#
	# Among more mundate cases like network outages, this happens
	# if we ran for a LONG time (days) and ntp server's IP has changed.
	# ntpd has no code to re-resolve peers' addresses to IPs,
	# we need to help it:
	#
	echo "$dt: $1"\
		"syncronization lost, restarting ntpd"\
		>>"$0.log.$$"
	mv -- "$0.log.$$" "$0.log"
	kill $PPID
	exit
fi

if test x"$stratum" != x"" \
&& test x"$poll_interval" != x"" \
&& test 4 -ge "$stratum" \
&& test 128 -le "$poll_interval" \
; then
	echo "$dt: $1"\
		"freq_drift_ppm=$freq_drift_ppm"\
		"offset=$offset"\
		"stratum=$stratum"\
		"poll_interval=$poll_interval,"\
		"setting hardware clock"\
		>>"$0.log.$$"
	mv -- "$0.log.$$" "$0.log"
	exec hwclock --systohc
fi

echo "$dt: $1"\
	"freq_drift_ppm=$freq_drift_ppm"\
	"offset=$offset"\
	"stratum=$stratum"\
	"poll_interval=$poll_interval"\
	>>"$0.log.$$"
mv -- "$0.log.$$" "$0.log"
