[PATCH v2] busybox: sysntpd: add trigger to reload server

Philip Prindeville philipp_subx at redfish-solutions.com
Wed Jun 2 15:08:26 PDT 2021


Comments...


> On Jun 2, 2021, at 2:17 PM, Alexey Dobrovolsky <dobrovolskiy.alexey at gmail.com> wrote:
> 
> sysntpd server becomes unavailable if the index of the bound
> interface changes. So let's add an interface trigger to reload sysntpd.
> 
> This patch also adds the ability for the sysntpd script to handle
> uci interface name from configuration.
> 
> Fixes: 4da60500ebd2 ("busybox: sysntpd: option to bind server to iface")
> Signed-off-by: Alexey Dobrovolsky <dobrovolskiy.alexey at gmail.com>
> ---
> 
> Notes:
>    Changes since v1:
>     * variables are not sorted alphabetically
> 
> package/utils/busybox/files/sysntpd | 24 ++++++++++++++++++++++--
> 1 file changed, 22 insertions(+), 2 deletions(-)
> 
> diff --git a/package/utils/busybox/files/sysntpd b/package/utils/busybox/files/sysntpd
> index c4c311c242..48d17b9992 100755
> --- a/package/utils/busybox/files/sysntpd
> +++ b/package/utils/busybox/files/sysntpd
> @@ -56,7 +56,14 @@ start_ntpd_instance() {
> 	procd_set_param command "$PROG" -n -N
> 	if [ "$enable_server" = "1" ]; then
> 		procd_append_param command -l
> -		[ -n "$interface" ] && procd_append_param command -I $interface
> +		[ -n "$interface" ] && {
> +			local ifname
> +
> +			network_get_device ifname "$interface" || \
> +				ifname="$interface"
> +			procd_append_param command -I "$ifname"
> +			procd_append_param netdev "$ifname"
> +		}
> 	fi
> 	[ -x "$HOTPLUG_SCRIPT" ] && procd_append_param command -S "$HOTPLUG_SCRIPT"
> 	for peer in $server; do
> @@ -79,11 +86,12 @@ start_ntpd_instance() {
> }
> 
> start_service() {
> +	. /lib/functions/network.sh
> 	validate_ntp_section ntp start_ntpd_instance
> }
> 
> service_triggers() {
> -	local script name use_dhcp
> +	local script name use_dhcp enable_server interface
> 
> 	script=$(readlink -f "$initscript")
> 	name=$(basename ${script:-$initscript})
> @@ -106,5 +114,17 @@ service_triggers() {
> 		fi
> 	}
> 
> +	config_get enable_server ntp enable_server

Should have called this out earlier, but just thought of it... Should this be "config_get_bool" instead?


> +	config_get interface ntp interface
> +
> +	[ "$enable_server" = "1" ] && [ -n "$interface" ] && {


And if it should be "config_get_bool", then should this be:

[ $enable_server -eq 1 ]

instead?


> +		local ifname
> +
> +		network_get_device ifname "$interface" || \
> +			ifname="$interface"
> +		procd_add_interface_trigger "interface.*" "$ifname" \
> +			/etc/init.d/"$name" reload
> +	}
> +
> 	procd_add_validation validate_ntp_section
> }
> -- 
> 2.25.1
> 
> 
> _______________________________________________
> openwrt-devel mailing list
> openwrt-devel at lists.openwrt.org
> https://lists.openwrt.org/mailman/listinfo/openwrt-devel




More information about the openwrt-devel mailing list