mirror of
https://dev.iopsys.eu/feed/iopsys.git
synced 2025-12-10 07:44:50 +01:00
timemngr: 1.0.1
This commit is contained in:
parent
89a86c3629
commit
213f7850bc
5 changed files with 50 additions and 32 deletions
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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"
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue