20-chrony-dhcp000075500000003355147204466470007153 0ustar00#!/bin/sh # This is a NetworkManager dispatcher script for chronyd to update # its NTP sources passed from DHCP options. Note that this script is # specific to NetworkManager-dispatcher due to use of the # DHCP4_NTP_SERVERS environment variable. export LC_ALL=C interface=$1 action=$2 helper=/usr/libexec/chrony-helper default_server_options=iburst server_dir=/run/chrony-helper dhcp_server_tmpfile=$server_dir/tmp-nm-dhcp.$interface dhcp_server_file=$server_dir/nm-dhcp.$interface # DHCP4_NTP_SERVERS is passed from DHCP options by NetworkManager. nm_dhcp_servers=$DHCP4_NTP_SERVERS [ -f /etc/sysconfig/network ] && . /etc/sysconfig/network [ -f /etc/sysconfig/network-scripts/ifcfg-"${interface}" ] && \ . /etc/sysconfig/network-scripts/ifcfg-"${interface}" add_servers_from_dhcp() { rm -f "$dhcp_server_file" # Remove servers saved by the dhclient script before it detected NM. rm -f "/var/lib/dhclient/chrony.servers.$interface" # Don't add NTP servers if PEERNTP=no specified; return early. [ "$PEERNTP" = "no" ] && return # Create the directory with correct SELinux context. $helper create-helper-directory > /dev/null 2>&1 for server in $nm_dhcp_servers; do echo "$server ${NTPSERVERARGS:-$default_server_options}" >> "$dhcp_server_tmpfile" done [ -e "$dhcp_server_tmpfile" ] && mv "$dhcp_server_tmpfile" "$dhcp_server_file" $helper update-daemon > /dev/null 2>&1 || : } clear_servers_from_dhcp() { if [ -f "$dhcp_server_file" ]; then rm -f "$dhcp_server_file" $helper update-daemon > /dev/null 2>&1 || : fi } if [ "$action" = "up" ] || [ "$action" = "dhcp4-change" ]; then add_servers_from_dhcp elif [ "$action" = "down" ]; then clear_servers_from_dhcp fi exit 0 20-chrony-onoffline000075500000001423147204466470010206 0ustar00#!/bin/sh # This is a NetworkManager dispatcher / networkd-dispatcher script for # chronyd to set its NTP sources online or offline when a network interface # is configured or removed export LC_ALL=C chronyc=/usr/bin/chronyc # For NetworkManager consider only selected events if [ $# -ge 2 ]; then case "$2" in up|down|connectivity-change) ;; dhcp4-change|dhcp6-change) # Actions "up" and "connectivity-change" in some cases do not # guarantee that the interface has a route (e.g. a bond). # dhcp(x)-change handles at least cases that use DHCP. ;; *) exit 0;; esac fi # Note: for networkd-dispatcher routable.d ~= on and off.d ~= off $chronyc onoffline > /dev/null 2>&1 exit 0