[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