packages/net/ntpclient/files/ntpclient.hotplug
blogic e0c6fbdda0 fixes ntpclient, whoich quit if -s and -l were not handed over as parameters
git-svn-id: svn://svn.openwrt.org/openwrt/packages@12339 3c298f89-4303-0410-b956-a3cf2f4a3e73
2008-08-19 17:25:32 +00:00

66 lines
1.3 KiB
Bash

#!/bin/sh
# Copyright (C) 2006 OpenWrt.org
. /etc/functions.sh
unset SERVER
unset PORT
unset INTERVAL
unset COUNT
NTPC=`which ntpclient`
check_server() {
local hostname
local port
[ -n "$SERVER" ] && return
config_get hostname $1 hostname
config_get port $1 port
[ -z "$hostname" ] && return
$NTPC -c 1 -p ${port:-123} -h $hostname > /dev/null && { SERVER=$hostname; PORT=${port:-123}; }
}
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} -s -l -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
[ -n "$count" ] && COUNT=$count
[ -n "$interval" ] && INTERVAL=$interval
}
config_load ntpclient
config_foreach load_settings ntpclient
DEF_ROUTE=`route -n | grep '^0.0.0.0'`
NTP_RUNNING=`ps | grep $NTPC | grep -v grep`
case "${ACTION:-ifup}" in
ifup)
[ -n "$DEF_ROUTE" -a -z "$NTP_RUNNING" ] && start_ntpclient
;;
ifdown)
[ -n "$NTP_RUNNING" ] && stop_ntpclient
;;
esac