aboutsummaryrefslogtreecommitdiffstats
path: root/package/base-files/files/etc/hotplug.d/iface
diff options
context:
space:
mode:
authorJo-Philipp Wich <jow@openwrt.org>2011-10-27 00:21:53 +0000
committerJo-Philipp Wich <jow@openwrt.org>2011-10-27 00:21:53 +0000
commitd7c90211df2c1e244cce8944da9a86e2c03f3a7f (patch)
treebbe59022ca565c73b5f530f1bf57af0fcda08ee6 /package/base-files/files/etc/hotplug.d/iface
parent794228a96cbbcd692ab3e08e344d58fb63823997 (diff)
downloadmaster-187ad058-d7c90211df2c1e244cce8944da9a86e2c03f3a7f.tar.gz
master-187ad058-d7c90211df2c1e244cce8944da9a86e2c03f3a7f.tar.bz2
master-187ad058-d7c90211df2c1e244cce8944da9a86e2c03f3a7f.zip
[package] base-files: remove rdate integration, add busybox ntpd init script and server list in /etc/config/system
The rdate applet proved to be too unreliable to obtain the current time on boot: - public time servers are rare and often unreachable or overloaded - rdate does not daemonize, it needs a network connection the moment it is started, leading to race conditions - the /etc/config/timeserver configuration is overly complex and there is no reliable way to disable rdate invocations - the time protocol as specified in RFC 868 is considered obsolete This commit adds an init script /etc/init.d/sysntpd which starts and stops the busybox ntpd accordingly. The builtin ntpd can be disabled by either disabling the init script, removing the symlink to busybox or by clearing the timeserver list in /etc/config/system. git-svn-id: svn://svn.openwrt.org/openwrt/trunk@28612 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'package/base-files/files/etc/hotplug.d/iface')
-rw-r--r--package/base-files/files/etc/hotplug.d/iface/40-rdate63
1 files changed, 0 insertions, 63 deletions
diff --git a/package/base-files/files/etc/hotplug.d/iface/40-rdate b/package/base-files/files/etc/hotplug.d/iface/40-rdate
deleted file mode 100644
index c5abaf011e..0000000000
--- a/package/base-files/files/etc/hotplug.d/iface/40-rdate
+++ /dev/null
@@ -1,63 +0,0 @@
-IFACE_GLOBAL=$(uci_get "system.@rdate[0].interface")
-SERVERS=
-MAX=0
-SYNCED=
-
-do_rdate()
-{
- local server="$1"
-
- rdate -s "$server" >/dev/null 2>/dev/null && {
- logger -t rdate "Synced with $server"
- SYNCED="$server"
- } || {
- logger -t rdate "Failed to sync with $server"
- }
-}
-
-add_server()
-{
- local section="$1"
-
- local server
- config_get server "$section" hostname
- [ -z "$server" ] && return
-
- local iface
- config_get iface "$section" interface
- [ -z "$iface" ] && iface=$IFACE_GLOBAL
- [ -n "$iface" ] && {
- [ "$iface" = "$INTERFACE" ] || return
- }
-
- SERVERS="${SERVERS} $server"; : $((MAX++))
-}
-
-sync_time()
-{
- local server
- server=$(uci_get_state "network.$INTERFACE.lease_timesrv")
- [ -n "$server" ] && do_rdate "$server"
- [ -n "$SYNCED" ] && return
-
- config_load timeserver
- config_foreach add_server timeserver
-
- local servers
- while [ $MAX -gt 0 ] && [ -z "$SYNCED" ]; do
- unset servers; random=$(awk "BEGIN { srand(); print int(rand() * $MAX + 1); }")
- for server in $SERVERS; do
- [ $((--random)) -eq 0 ] && { do_rdate "$server"; continue; }
- servers="${servers} $server"
- done
- SERVERS="${servers}"; : $((MAX--))
- done
-
- [ -z "$SYNCED" ] && logger -t rdate "No usable time server for $INTERFACE found"
-}
-
-case "${ACTION:-ifup}" in
- ifup)
- sync_time
- ;;
-esac