clean up ntpclient uci
- add global section for default values - find working server from servers named in config - patches bin to support daemon git-svn-id: svn://svn.openwrt.org/openwrt/packages@12305 3c298f89-4303-0410-b956-a3cf2f4a3e73
This commit is contained in:
parent
e36bf6b17e
commit
d29489b527
@ -41,8 +41,6 @@ define Package/ntpclient/install
|
|||||||
$(INSTALL_DIR) $(1)/etc/config
|
$(INSTALL_DIR) $(1)/etc/config
|
||||||
$(INSTALL_CONF) ./files/ntpclient.config $(1)/etc/config/ntpclient
|
$(INSTALL_CONF) ./files/ntpclient.config $(1)/etc/config/ntpclient
|
||||||
$(INSTALL_DIR) $(1)/usr/sbin
|
$(INSTALL_DIR) $(1)/usr/sbin
|
||||||
$(INSTALL_DIR) $(1)/etc/init.d
|
|
||||||
$(INSTALL_BIN) ./files/ntpclient.init $(1)/etc/init.d/ntpclient
|
|
||||||
$(INSTALL_BIN) $(PKG_BUILD_DIR)/ntpclient $(1)/usr/sbin/
|
$(INSTALL_BIN) $(PKG_BUILD_DIR)/ntpclient $(1)/usr/sbin/
|
||||||
$(INSTALL_BIN) $(PKG_BUILD_DIR)/adjtimex $(1)/usr/sbin/
|
$(INSTALL_BIN) $(PKG_BUILD_DIR)/adjtimex $(1)/usr/sbin/
|
||||||
$(INSTALL_BIN) $(PKG_BUILD_DIR)/rate.awk $(1)/usr/sbin/
|
$(INSTALL_BIN) $(PKG_BUILD_DIR)/rate.awk $(1)/usr/sbin/
|
||||||
|
@ -1,22 +1,23 @@
|
|||||||
config ntpclient
|
config ntpserver
|
||||||
option hostname '0.openwrt.pool.ntp.org'
|
option hostname '0.openwrt.pool.ntp.org'
|
||||||
option port '123'
|
option port '123'
|
||||||
option count '0'
|
|
||||||
|
|
||||||
config ntpclient
|
config ntpserver
|
||||||
option hostname '1.openwrt.pool.ntp.org'
|
option hostname '1.openwrt.pool.ntp.org'
|
||||||
option port '123'
|
option port '123'
|
||||||
option count '0'
|
|
||||||
|
|
||||||
config ntpclient
|
config ntpserver
|
||||||
option hostname '2.openwrt.pool.ntp.org'
|
option hostname '2.openwrt.pool.ntp.org'
|
||||||
option port '123'
|
option port '123'
|
||||||
option count '0'
|
|
||||||
|
|
||||||
config ntpclient
|
config ntpserver
|
||||||
option hostname '3.openwrt.pool.ntp.org'
|
option hostname '3.openwrt.pool.ntp.org'
|
||||||
option port '123'
|
option port '123'
|
||||||
option count '0'
|
|
||||||
|
|
||||||
config ntpdrift
|
config ntpdrift
|
||||||
option freq '0'
|
option freq '0'
|
||||||
|
|
||||||
|
config ntpclient
|
||||||
|
option interval 60
|
||||||
|
option iface wan
|
||||||
|
#option count 10
|
||||||
|
@ -3,43 +3,69 @@
|
|||||||
|
|
||||||
. /etc/functions.sh
|
. /etc/functions.sh
|
||||||
|
|
||||||
DONE=0
|
unset IFACE
|
||||||
config_cb() {
|
unset SERVER
|
||||||
local cfg="$CONFIG_SECTION"
|
unset PORT
|
||||||
local cfgtype
|
unset INTERVAL
|
||||||
config_get cfgtype "$cfg" TYPE
|
unset COUNT
|
||||||
|
NTPC=`which ntpclient`
|
||||||
|
|
||||||
# initial frequency offset, if configured
|
check_server() {
|
||||||
case "$cfgtype" in
|
local hostname
|
||||||
ntpdrift)
|
local port
|
||||||
config_get freq $cfg freq
|
[ -n "$SERVER" ] && return
|
||||||
|
config_get hostname $1 hostname
|
||||||
if [ ! "$freq" = "" ]; then
|
config_get port $1 port
|
||||||
adjtimex -f $freq >/dev/null
|
[ -z "$hostname" ] && return
|
||||||
fi
|
$NTPC -c 1 -p ${port:-123} -h $hostname > /dev/null && { SERVER=$hostname; PORT=${port:-123}; }
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
case "$cfgtype" in
|
|
||||||
ntpclient)
|
|
||||||
config_get hostname $cfg hostname
|
|
||||||
config_get port $cfg port
|
|
||||||
config_get count $cfg count
|
|
||||||
|
|
||||||
[ "$DONE" = "1" ] && exit 0
|
|
||||||
ps | grep 'bin/[n]tpclient' >&- || {
|
|
||||||
route -n 2>&- | grep '^0.0.0.0' >&- && {
|
|
||||||
/usr/sbin/ntpclient -c ${count:-1} -s -h $hostname -p ${port:-123} 2>&- >&- && DONE=1
|
|
||||||
}
|
|
||||||
}
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
set_drift() {
|
||||||
|
config_get freq $1 freq
|
||||||
|
[ -n "$freq" ] && adjtimex -f $freq >/dev/null
|
||||||
|
}
|
||||||
|
|
||||||
|
start_ntpclient() {
|
||||||
|
config_foreach set_drift ntpdrift
|
||||||
|
config_foreach check_server ntpserver
|
||||||
|
[ -z "$SERVER" ] && exit 0
|
||||||
|
logger starting ntpclient
|
||||||
|
$NTPC ${COUNT:+-c $COUNT} ${INTERVAL:+-i $INTERVAL} -D -p $PORT -h $SERVER 2> /dev/null
|
||||||
|
}
|
||||||
|
|
||||||
|
stop_ntpclient() {
|
||||||
|
logger stopping ntpclient
|
||||||
|
killall ntpclient
|
||||||
|
}
|
||||||
|
|
||||||
|
load_settings() {
|
||||||
|
local interval
|
||||||
|
local count
|
||||||
|
local iface
|
||||||
|
|
||||||
|
config_get interval $1 interval
|
||||||
|
config_get count $1 count
|
||||||
|
config_get iface $1 iface
|
||||||
|
|
||||||
|
[ -n "$iface" ] && IFACE=$iface
|
||||||
|
[ -n "$count" ] && COUNT=$count
|
||||||
|
[ -n "$interval" ] && INTERVAL=$interval
|
||||||
|
}
|
||||||
|
|
||||||
|
config_load ntpclient
|
||||||
|
config_foreach load_settings ntpclient
|
||||||
|
|
||||||
|
# check if we only listen to a single iface
|
||||||
|
[ -n "$IFACE" -a "$IFACE" != "$INTERFACE" ] && exit 0
|
||||||
|
|
||||||
|
DEF_ROUTE=`route -n | grep '^0.0.0.0'`
|
||||||
|
NTP_RUNNING=`ps | grep $NTPC | grep -v grep`
|
||||||
|
|
||||||
case "${ACTION:-ifup}" in
|
case "${ACTION:-ifup}" in
|
||||||
ifup)
|
ifup)
|
||||||
config_load ntpclient&
|
[ -n "$DEF_ROUTE" -a -z "$NTP_RUNNING" ] && start_ntpclient
|
||||||
;;
|
;;
|
||||||
ifdown)
|
ifdown)
|
||||||
route -n 2>&- | grep '^0.0.0.0' >&- || killall ntpclient 2>&- >&-
|
[ -n "$NTP_RUNNING" ] && stop_ntpclient
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
@ -1,28 +0,0 @@
|
|||||||
#!/bin/sh /etc/rc.common
|
|
||||||
# Copyright (C) 2008 OpenWrt.org
|
|
||||||
|
|
||||||
START=80
|
|
||||||
|
|
||||||
config_cb() {
|
|
||||||
local cfg="$CONFIG_SECTION"
|
|
||||||
local cfgtype
|
|
||||||
config_get cfgtype "$cfg" TYPE
|
|
||||||
|
|
||||||
if [ "$cfgtype" = ntpclient ]
|
|
||||||
then
|
|
||||||
config_get hostname $cfg hostname
|
|
||||||
config_get port $cfg port
|
|
||||||
config_get count $cfg count
|
|
||||||
|
|
||||||
ps | grep -q 'bin/[n]tpclient' || \
|
|
||||||
/usr/sbin/ntpclient -s -c ${count:-1} -l -h $hostname -p ${port:-123} 2>&- >&- &
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
start() {
|
|
||||||
config_load ntpclient&
|
|
||||||
}
|
|
||||||
|
|
||||||
stop() {
|
|
||||||
killall ntpclient 2>&- >&-
|
|
||||||
}
|
|
24
net/ntpclient/patches/100-daemon.patch
Normal file
24
net/ntpclient/patches/100-daemon.patch
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
Index: ntpclient-2007/ntpclient.c
|
||||||
|
===================================================================
|
||||||
|
--- ntpclient-2007.orig/ntpclient.c 2008-08-12 03:11:34.000000000 +0200
|
||||||
|
+++ ntpclient-2007/ntpclient.c 2008-08-12 03:11:36.000000000 +0200
|
||||||
|
@@ -614,7 +614,7 @@
|
||||||
|
ntpc.cross_check=1;
|
||||||
|
|
||||||
|
for (;;) {
|
||||||
|
- c = getopt( argc, argv, "c:" DEBUG_OPTION "f:g:h:i:lp:q:" REPLAY_OPTION "st");
|
||||||
|
+ c = getopt( argc, argv, "c:" DEBUG_OPTION "f:g:h:i:lp:q:" REPLAY_OPTION "stD");
|
||||||
|
if (c == EOF) break;
|
||||||
|
switch (c) {
|
||||||
|
case 'c':
|
||||||
|
@@ -663,6 +663,10 @@
|
||||||
|
(ntpc.cross_check)=0;
|
||||||
|
break;
|
||||||
|
|
||||||
|
+ case 'D':
|
||||||
|
+ daemon();
|
||||||
|
+ break;
|
||||||
|
+
|
||||||
|
default:
|
||||||
|
usage(argv[0]);
|
||||||
|
exit(1);
|
Loading…
x
Reference in New Issue
Block a user