mirror of
https://github.com/rsmarples/dhcpcd.git
synced 2024-11-27 12:03:45 +08:00
5f6f61cbe3
RFC 5908 deprecates OPTION_SNTP_SERVERS. However we can support both at the same time as our scripts will uniqify the results if there are stupidly any duplicates. Fixes #183.
61 lines
1.2 KiB
Plaintext
61 lines
1.2 KiB
Plaintext
: ${timesyncd_conf_d:=/run/systemd/timesyncd.conf.d}
|
|
timesyncd_conf="${timesyncd_conf_d}/dhcpcd-$ifname.conf"
|
|
timesyncd_tmp_d="$state_dir/timesyncd"
|
|
timesyncd_tmp="$timesyncd_tmp_d/$ifname"
|
|
|
|
NL="
|
|
"
|
|
|
|
remove_timesyncd_conf()
|
|
{
|
|
if [ -e "$timesyncd_conf" ]; then
|
|
rm "$timesyncd_conf"
|
|
systemctl try-reload-or-restart --no-block systemd-timesyncd
|
|
fi
|
|
}
|
|
|
|
add_timesyncd_conf()
|
|
{
|
|
if [ -z "$new_ntp_servers" ]; then
|
|
remove_timesyncd_conf
|
|
return $?
|
|
fi
|
|
|
|
mkdir -p "$timesyncd_tmp_d" "$timesyncd_conf_d"
|
|
|
|
conf="$signature$NL"
|
|
conf="${conf}[Time]$NL"
|
|
conf="${conf}NTP="
|
|
# Trim spaces
|
|
space=false
|
|
for ntp_server in $(uniqify $new_ntp_servers); do
|
|
if ! $space; then
|
|
space=true
|
|
else
|
|
conf="$conf "
|
|
fi
|
|
conf="$conf$ntp_server"
|
|
done
|
|
conf="$conf$NL"
|
|
|
|
printf %s "$conf" > "$timesyncd_tmp"
|
|
if change_file "$timesyncd_conf" "$timesyncd_tmp"; then
|
|
systemctl try-reload-or-restart --no-block systemd-timesyncd
|
|
fi
|
|
}
|
|
|
|
# For ease of use, map DHCP6 names onto our DHCP4 names
|
|
case "$reason" in
|
|
BOUND6|RENEW6|REBIND6|REBOOT6|INFORM6)
|
|
new_ntp_servers="$new_dhcp6_sntp_servers $new_dhcp6_ntp_server_addr $new_dhcp6_ntp_server_fqdn"
|
|
;;
|
|
esac
|
|
|
|
if $if_configured; then
|
|
if $if_up; then
|
|
add_timesyncd_conf
|
|
elif $if_down; then
|
|
remove_timesyncd_conf
|
|
fi
|
|
fi
|