aboutsummaryrefslogtreecommitdiffstats
path: root/package/utils
diff options
context:
space:
mode:
authorAlexey Dobrovolsky <dobrovolskiy.alexey@gmail.com>2021-06-06 02:25:02 +0300
committerBaptiste Jonglez <git@bitsofnetworks.org>2021-06-30 09:24:15 +0200
commit9fa925362f285614e90c2d7a286efd9d3d41db45 (patch)
tree632b7ef4a27d06822ec09f396926165cb4aff2da /package/utils
parenta75928d1259e52e52b1991a4dc39df61ba3c9206 (diff)
downloadupstream-9fa925362f285614e90c2d7a286efd9d3d41db45.tar.gz
upstream-9fa925362f285614e90c2d7a286efd9d3d41db45.tar.bz2
upstream-9fa925362f285614e90c2d7a286efd9d3d41db45.zip
busybox: sysntpd: add trigger to reload server
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@gmail.com> Reviewed-by: Philip Prindeville <philipp@redfish-solutions.com> (cherry picked from commit 88114f617ae7bffe13d19d7b9575659a3d3cd9b6)
Diffstat (limited to 'package/utils')
-rwxr-xr-xpackage/utils/busybox/files/sysntpd24
1 files 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
}