HEX
Server: Apache/2.4.65 (Debian)
System: Linux srv39710 6.1.0-41-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.158-1 (2025-11-09) x86_64
User: root (0)
PHP: 8.4.11
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,
Upload Files
File: //etc/dhcp/dhclient-exit-hooks.d/ntpsec-ntpdate
NTPDATE_CONF=/etc/default/ntpsec-ntpdate
NTPDATE_DHCP_CONF_DIR=/run/ntpsec
NTPDATE_DHCP_CONF=$NTPDATE_DHCP_CONF_DIR/ntpdate.dhcp


ntp_servers_setup_remove() {
	rm -f $NTPDATE_DHCP_CONF
}


ntp_servers_setup_add() {
	# dhclient provides the old servers in $old_ntp_servers, but NetworkManager
	# and networkd do not.  Get the old list from the configuration file, if
	# it is present.
	old_ntp_servers=""
	if [ -e "$NTPDATE_DHCP_CONF" ]; then
		. "$NTPDATE_DHCP_CONF"
		old_ntp_servers="$NTPSERVERS"
	fi

	# $new_ntp_servers comes from dhclient.
	# $DHCP4_NTP_SERVERS and $DHCP6_NTP_SERVERS come from NetworkManager.
	# NOTE: $old_ntp_servers is space-separated, and in this loop, the
	# NOTE: the newlines are changed to spaces for $new_ntp_servers.
	new_ntp_servers=$(
		for i in \
			$new_ntp_servers \
			$DHCP4_NTP_SERVERS $DHCP6_NTP_SERVERS
		do
			echo $i
		done | tr "\n" " " | sed "s| $||")

	if [ "$new_ntp_servers" = "$old_ntp_servers" ]; then
		return
	fi

	if [ -z "$new_ntp_servers" ]; then
		ntp_servers_setup_remove
		return
	fi

	mkdir -p "$NTPDATE_DHCP_CONF_DIR"
	tmp=$(mktemp "$NTPDATE_DHCP_CONF.XXXXXX") || return
	chmod --reference="$NTPDATE_CONF" "$tmp"
	chown --reference="$NTPDATE_CONF" "$tmp"

	(
	  echo "# NTP server entries received from DHCP server"
	  echo "NTPSERVERS='$new_ntp_servers'"
	) >> "$tmp"

	mv "$tmp" "$NTPDATE_DHCP_CONF"
}


ntp_servers_setup() {
	case $reason in
		BOUND|RENEW|REBIND|REBOOT)
			ntp_servers_setup_add
			;;
		EXPIRE|FAIL|RELEASE|STOP)
			ntp_servers_setup_remove
			;;
	esac
}


ntp_servers_setup