From 213f7850bc6cda4e3d1c6c50a7f128215e4c332c Mon Sep 17 00:00:00 2001 From: suvendhu Date: Mon, 28 Aug 2023 15:13:32 +0530 Subject: [PATCH] timemngr: 1.0.1 --- timemngr/Makefile | 4 +-- .../files/etc/hotplug.d/iface/21-timemngr | 11 +++--- timemngr/files/etc/init.d/timemngr | 4 +-- timemngr/files/etc/timemngr/ntpd_config.sh | 36 +++++++++++++------ .../etc/uci-defaults/96-system-ntp-migrate | 27 +++++++------- 5 files changed, 50 insertions(+), 32 deletions(-) diff --git a/timemngr/Makefile b/timemngr/Makefile index 393fbabf4..322517c6d 100644 --- a/timemngr/Makefile +++ b/timemngr/Makefile @@ -5,13 +5,13 @@ include $(TOPDIR)/rules.mk PKG_NAME:=timemngr -PKG_VERSION:=1.0.0 +PKG_VERSION:=1.0.1 LOCAL_DEV:=0 ifneq ($(LOCAL_DEV),1) PKG_SOURCE_PROTO:=git PKG_SOURCE_URL:=https://dev.iopsys.eu/bbf/timemngr.git -PKG_SOURCE_VERSION:=7803c29c7c16e808f10dec226ec66d1ade5e84ec +PKG_SOURCE_VERSION:=4ac0681d546ae94eeedbcf2b2ccbb9c4637e9bdb PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz PKG_MIRROR_HASH:=skip endif diff --git a/timemngr/files/etc/hotplug.d/iface/21-timemngr b/timemngr/files/etc/hotplug.d/iface/21-timemngr index 9bc3c9e57..3de8b9339 100644 --- a/timemngr/files/etc/hotplug.d/iface/21-timemngr +++ b/timemngr/files/etc/hotplug.d/iface/21-timemngr @@ -9,7 +9,7 @@ configure_ntp_servers() local ntp_interface # Only change the ntp servers if interface matches with the defined interface - ntp_interface="$(uci -q get ${NAME}.dhcp_driven.client_interface)" + ntp_interface="$(uci -q get ${NAME}.dhcp_driven.interface)" if [ "${ntp_interface}" != "${1}" ]; then return 0 @@ -19,11 +19,12 @@ configure_ntp_servers() json_select data json_get_var servers ntpserver "" - dhcp_ntp_server="${servers// /,}" - exist_dhcp_ntp_server="$(uci -q get ${NAME}.dhcp_driven.server)" - if [ "${dhcp_ntp_server}" != "${exist_dhcp_ntp_server}" ]; then - uci -q set ${NAME}.dhcp_driven.server="${dhcp_ntp_server}" + if [ "${servers}" != "${exist_dhcp_ntp_server}" ]; then + uci -q del ${NAME}.dhcp_driven.server + for server in ${servers}; do + uci -q add_list ${NAME}.dhcp_driven.server="${server}" + done eval ubus call uci commit '{\"config\":\"$NAME\"}' fi } diff --git a/timemngr/files/etc/init.d/timemngr b/timemngr/files/etc/init.d/timemngr index 921081188..9f2b89585 100755 --- a/timemngr/files/etc/init.d/timemngr +++ b/timemngr/files/etc/init.d/timemngr @@ -49,12 +49,12 @@ reload_service() { service_triggers() { procd_add_reload_trigger "time" - local enable_server server_mode ttl interface + local enable mode ttl interface validate_server_section || { return 1 } - if [ "$enable_server" != 0 ] && [ "$server_mode" = "Broadcast" ] && [ -n "$interface" ]; then + if [ "$enable" != 0 ] && [ "$mode" = "Broadcast" ] && [ -n "$interface" ]; then procd_open_trigger procd_add_interface_trigger "interface.*.up" $interface /etc/init.d/timemngr restart procd_close_trigger diff --git a/timemngr/files/etc/timemngr/ntpd_config.sh b/timemngr/files/etc/timemngr/ntpd_config.sh index 40d680d6d..6fc9f0cab 100755 --- a/timemngr/files/etc/timemngr/ntpd_config.sh +++ b/timemngr/files/etc/timemngr/ntpd_config.sh @@ -21,22 +21,22 @@ validate_global_section() { validate_server_section() { uci_validate_section time server server \ - 'enable_server:bool:1'\ - 'server_mode:string:Unicast'\ + 'enable:bool:1'\ + 'mode:string:Unicast'\ 'ttl:uinteger:255'\ 'interface:string' } validate_client_section() { uci_validate_section time client $1 \ - 'enable_client:bool:1'\ + 'enable:bool:1'\ 'iburst:bool:1'\ 'version:uinteger:4'\ 'peer:bool:0'\ 'minpoll:uinteger:6'\ 'maxpoll:uinteger:10'\ - 'client_mode:string:Unicast'\ - 'server:string' + 'mode:string:Unicast'\ + 'server:list(host)' } generate_config() { @@ -49,21 +49,37 @@ generate_config() { return 1 fi - enable_client_sec=$(uci -q show time | grep enable_client=\'1\' | cut -d'.' -f 2) - local enable_client iburst version peer minpoll maxpoll client_mode server + local enable_client_sec + enabled_sec=$(uci -q show time | grep enable=\'1\' | cut -d'.' -f 2) + for sec in $enabled_sec; do + type=$(uci -q get time.$sec) + if [ "${type}" == "client" ]; then + enable_client_sec=$sec + break + fi + done + + local client_mode enable_client + local enable iburst version peer minpoll maxpoll mode server if [ -n $enable_client_sec ]; then validate_client_section $enable_client_sec || { return 1 } + client_mode=$mode + enable_client=$enable else enable_client=0 fi - local enable_server server_mode ttl interface + local server_mode enable_server + local enable mode ttl interface validate_server_section || { return 1 } + server_mode=$mode + enable_server=$enable + [ "$enable_client" = 0 ] && [ "$enable_server" = 0 ] && return trunc @@ -97,7 +113,7 @@ generate_config() { elif [ "$client_mode" = "Manycast" ]; then emit "manycastclient 224.0.1.1 minpoll $minpoll maxpoll $maxpoll version $version\n" else - for i in ${server//,/ }; do + for i in $server; do str="server $i minpoll $minpoll maxpoll $maxpoll version $version" if [ "$iburst" != 0 ]; then str="${str} iburst" @@ -106,7 +122,7 @@ generate_config() { done if [ "$peer" != 0 ]; then - for i in ${server//,/ }; do + for i in $server; do str="peer $i minpoll $minpoll maxpoll $maxpoll version $version" if [ "$iburst" != 0 ]; then str="${str} iburst" diff --git a/timemngr/files/etc/uci-defaults/96-system-ntp-migrate b/timemngr/files/etc/uci-defaults/96-system-ntp-migrate index 12042d0b0..e751e79a9 100644 --- a/timemngr/files/etc/uci-defaults/96-system-ntp-migrate +++ b/timemngr/files/etc/uci-defaults/96-system-ntp-migrate @@ -23,31 +23,32 @@ if uci -q get system.ntp >/dev/null 2>&1; then enabled="1" fi - uci -q set time.client.enable_client="$enabled" + uci -q set time.client.enable="$enabled" uci -q set time.client.iburst="1" uci -q set time.client.version="4" uci -q set time.client.peer="0" uci -q set time.client.minpoll="6" uci -q set time.client.maxpoll="10" - uci -q set time.client.client_mode="Unicast" + uci -q set time.client.mode="Unicast" servers="$(get_system_ntp_option server)" - if [ -n "${servers}" ]; then - servers="${servers// /,}" - else - servers="ntp1.sth.netnod.se,ntp1.gbg.netnod.se" + if [ -z "${servers}" ]; then + servers="ntp1.sth.netnod.se ntp1.gbg.netnod.se" fi - uci -q set time.client.server="${servers}" + + for server in $servers; do + uci -q add_list time.client.server="${server}" + done # DHCP client instance uci -q set time.dhcp_driven="client" - uci -q set time.dhcp_driven.enable_client="0" + uci -q set time.dhcp_driven.enable="0" interface="$(get_system_ntp_option interface)" if [ -n "${interface}" ]; then - uci -q set time.dhcp_driven.client_interface="${interface}" + uci -q set time.dhcp_driven.interface="${interface}" else - uci -q set time.dhcp_driven.client_interface="wan" + uci -q set time.dhcp_driven.interface="wan" fi uci -q set time.dhcp_driven.iburst="1" @@ -55,12 +56,12 @@ if uci -q get system.ntp >/dev/null 2>&1; then uci -q set time.dhcp_driven.peer="0" uci -q set time.dhcp_driven.minpoll="6" uci -q set time.dhcp_driven.maxpoll="10" - uci -q set time.dhcp_driven.client_mode="Unicast" + uci -q set time.dhcp_driven.mode="Unicast" # Add timeserver uci -q set time.server="server" - uci -q set time.server.enable_server="$(get_system_ntp_option enable_server)" - uci -q set time.server.server_mode="Unicast" + uci -q set time.server.enable="$(get_system_ntp_option enable_server)" + uci -q set time.server.mode="Unicast" uci -q set time.server.ttl="255" uci -q commit time fi