Blame SOURCES/chrony-nm-dispatcher-dhcp.patch

b94f58
From: Robert Fairley <rfairley@redhat.com>
b94f58
Date: Wed, 17 Jun 2020 10:14:19 -0400
b94f58
Subject: [PATCH] examples/nm-dispatcher.dhcp: use sysconfig
b94f58
b94f58
Use the PEERNTP and NTPSERVERARGS environment variables from
b94f58
/etc/sysconfig/network{-scripts}.
b94f58
b94f58
Co-Authored-By: Christian Glombek <cglombek@redhat.com>
b94f58
b94f58
diff --git a/examples/chrony.nm-dispatcher.dhcp b/examples/chrony.nm-dispatcher.dhcp
b94f58
index 6ea4c37..a6ad35a 100644
b94f58
--- a/examples/chrony.nm-dispatcher.dhcp
b94f58
+++ b/examples/chrony.nm-dispatcher.dhcp
b94f58
@@ -6,16 +6,24 @@
b94f58
 
b94f58
 chronyc=/usr/bin/chronyc
b94f58
 default_server_options=iburst
b94f58
-server_dir=/var/run/chrony-dhcp
b94f58
+server_dir=/run/chrony-dhcp
b94f58
 
b94f58
 dhcp_server_file=$server_dir/$interface.sources
b94f58
 # DHCP4_NTP_SERVERS is passed from DHCP options by NetworkManager.
b94f58
 nm_dhcp_servers=$DHCP4_NTP_SERVERS
b94f58
 
b94f58
+[ -f /etc/sysconfig/network ] && . /etc/sysconfig/network
b94f58
+[ -f /etc/sysconfig/network-scripts/ifcfg-"${interface}" ] && \
b94f58
+    . /etc/sysconfig/network-scripts/ifcfg-"${interface}"
b94f58
+
b94f58
 add_servers_from_dhcp() {
b94f58
     rm -f "$dhcp_server_file"
b94f58
+
b94f58
+    # Don't add NTP servers if PEERNTP=no specified; return early.
b94f58
+    [ "$PEERNTP" = "no" ] && return
b94f58
+
b94f58
     for server in $nm_dhcp_servers; do
b94f58
-        echo "server $server $default_server_options" >> "$dhcp_server_file"
b94f58
+        echo "server $server ${NTPSERVERARGS:-$default_server_options}" >> "$dhcp_server_file"
b94f58
     done
b94f58
     $chronyc reload sources > /dev/null 2>&1 || :
b94f58
 }
b94f58
-- 
b94f58
2.29.2
b94f58
b94f58
Use chrony-helper instead of chronyc to avoid changes in default chrony.conf
b94f58
b94f58
diff -up chrony-4.1/examples/chrony.nm-dispatcher.dhcp.nm-dispatcher-dhcp chrony-4.1/examples/chrony.nm-dispatcher.dhcp
b94f58
--- chrony-4.1/examples/chrony.nm-dispatcher.dhcp.nm-dispatcher-dhcp	2021-06-09 11:10:30.997416152 +0200
b94f58
+++ chrony-4.1/examples/chrony.nm-dispatcher.dhcp	2021-06-09 11:16:23.598381336 +0200
b94f58
@@ -9,11 +9,12 @@ export LC_ALL=C
b94f58
 interface=$1
b94f58
 action=$2
b94f58
 
b94f58
-chronyc=/usr/bin/chronyc
b94f58
+helper=/usr/libexec/chrony-helper
b94f58
 default_server_options=iburst
b94f58
-server_dir=/run/chrony-dhcp
b94f58
+server_dir=/run/chrony-helper
b94f58
 
b94f58
-dhcp_server_file=$server_dir/$interface.sources
b94f58
+dhcp_server_tmpfile=$server_dir/tmp-nm-dhcp.$interface
b94f58
+dhcp_server_file=$server_dir/nm-dhcp.$interface
b94f58
 # DHCP4_NTP_SERVERS is passed from DHCP options by NetworkManager.
b94f58
 nm_dhcp_servers=$DHCP4_NTP_SERVERS
b94f58
 
b94f58
@@ -24,24 +24,30 @@ nm_dhcp_servers=$DHCP4_NTP_SERVERS
b94f58
 add_servers_from_dhcp() {
b94f58
     rm -f "$dhcp_server_file"
b94f58
 
b94f58
+    # Remove servers saved by the dhclient script before it detected NM.
b94f58
+    rm -f "/var/lib/dhclient/chrony.servers.$interface"
b94f58
+
b94f58
     # Don't add NTP servers if PEERNTP=no specified; return early.
b94f58
     [ "$PEERNTP" = "no" ] && return
b94f58
 
b94f58
+    # Create the directory with correct SELinux context.
b94f58
+    $helper create-helper-directory > /dev/null 2>&1
b94f58
+
b94f58
     for server in $nm_dhcp_servers; do
b94f58
-        echo "server $server ${NTPSERVERARGS:-$default_server_options}" >> "$dhcp_server_file"
b94f58
+        echo "$server ${NTPSERVERARGS:-$default_server_options}" >> "$dhcp_server_tmpfile"
b94f58
     done
b94f58
+    [ -e "$dhcp_server_tmpfile" ] && mv "$dhcp_server_tmpfile" "$dhcp_server_file"
b94f58
-    $chronyc reload sources > /dev/null 2>&1 || :
b94f58
+
b94f58
+    $helper update-daemon > /dev/null 2>&1 || :
b94f58
 }
b94f58
 
b94f58
 clear_servers_from_dhcp() {
b94f58
     if [ -f "$dhcp_server_file" ]; then
b94f58
         rm -f "$dhcp_server_file"
b94f58
-        $chronyc reload sources > /dev/null 2>&1 || :
b94f58
+        $helper update-daemon > /dev/null 2>&1 || :
b94f58
     fi
b94f58
 }
b94f58
 
b94f58
-mkdir -p $server_dir
b94f58
-
b94f58
 if [ "$action" = "up" ] || [ "$action" = "dhcp4-change" ]; then
b94f58
     add_servers_from_dhcp
b94f58
 elif [ "$action" = "down" ]; then