Switch aircrack-ng to a svn revision, thus we have airserv-ng
[openwrt/svn-archive/archive.git] / net / ntpclient / files / ntpclient.hotplug
1 #!/bin/sh
2 # Copyright (C) 2006 OpenWrt.org
3
4 . /etc/functions.sh
5
6 unset IFACE
7 unset SERVER
8 unset PORT
9 unset INTERVAL
10 unset COUNT
11 NTPC=`which ntpclient`
12
13 check_server() {
14 local hostname
15 local port
16 [ -n "$SERVER" ] && return
17 config_get hostname $1 hostname
18 config_get port $1 port
19 [ -z "$hostname" ] && return
20 $NTPC -c 1 -p ${port:-123} -h $hostname > /dev/null && { SERVER=$hostname; PORT=${port:-123}; }
21 }
22
23 set_drift() {
24 config_get freq $1 freq
25 [ -n "$freq" ] && adjtimex -f $freq >/dev/null
26 }
27
28 start_ntpclient() {
29 config_foreach set_drift ntpdrift
30 config_foreach check_server ntpserver
31 [ -z "$SERVER" ] && exit 0
32 logger starting ntpclient
33 $NTPC ${COUNT:+-c $COUNT} ${INTERVAL:+-i $INTERVAL} -D -p $PORT -h $SERVER 2> /dev/null
34 }
35
36 stop_ntpclient() {
37 logger stopping ntpclient
38 killall ntpclient
39 }
40
41 load_settings() {
42 local interval
43 local count
44 local iface
45
46 config_get interval $1 interval
47 config_get count $1 count
48 config_get iface $1 iface
49
50 [ -n "$iface" ] && IFACE=$iface
51 [ -n "$count" ] && COUNT=$count
52 [ -n "$interval" ] && INTERVAL=$interval
53 }
54
55 config_load ntpclient
56 config_foreach load_settings ntpclient
57
58 # check if we only listen to a single iface
59 [ -n "$IFACE" -a "$IFACE" != "$INTERFACE" ] && exit 0
60
61 DEF_ROUTE=`route -n | grep '^0.0.0.0'`
62 NTP_RUNNING=`ps | grep $NTPC | grep -v grep`
63
64 case "${ACTION:-ifup}" in
65 ifup)
66 [ -n "$DEF_ROUTE" -a -z "$NTP_RUNNING" ] && start_ntpclient
67 ;;
68 ifdown)
69 [ -n "$NTP_RUNNING" ] && stop_ntpclient
70 ;;
71 esac