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

Baptiste Jonglez baptiste at bitsofnetworks.org
Sun Jun 27 15:00:46 PDT 2021


On 06-06-21, Alexey Dobrovolsky 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>

Merged, thanks!

Baptiste

> ---
> 
> Notes:
>     Changes since v1:
>      * variables are not sorted alphabetically
>     since v2:
>      * use config_get_bool to get enable_server
>      * set default value for enable_server
>      * use integer comparison for enable_server
> 
>  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..074f14b8f8 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_bool enable_server ntp enable_server 0
> +	config_get interface ntp interface
> +
> +	[ $enable_server -eq 1 ] && [ -n "$interface" ] && {
> +		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
>  }
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: not available
URL: <http://lists.openwrt.org/pipermail/openwrt-devel/attachments/20210628/91934ae7/attachment.sig>


More information about the openwrt-devel mailing list