From: Jo-Philipp Wich Date: Fri, 1 May 2009 13:19:49 +0000 (+0000) Subject: modules/freifunk: setup config and cron jobs for rdate; sync time on boot X-Git-Tag: 0.9.0~493 X-Git-Url: https://git.archive.openwrt.org/?p=project%2Fluci.git;a=commitdiff_plain;h=c2dff916a6186ac227c238d72a1d8d0c65d9fe03 modules/freifunk: setup config and cron jobs for rdate; sync time on boot --- diff --git a/modules/freifunk/root/etc/config/freifunk b/modules/freifunk/root/etc/config/freifunk index 516160e82..ce855e2fe 100644 --- a/modules/freifunk/root/etc/config/freifunk +++ b/modules/freifunk/root/etc/config/freifunk @@ -55,29 +55,28 @@ config defaults wifi_device option disabled 0 option txpower 10 - config defaults wifi_iface option mode adhoc option bssid 02:CA:FF:EE:BA:BE option sw_merge 1 - config defaults interface option netmask 255.0.0.0 option dns "88.198.178.18 141.54.1.1 212.204.49.83 208.67.220.220 208.67.222.222" - config defaults alias option netmask 255.255.255.0 - config defaults dhcp option leasetime 30m - config defaults olsr_interface option Ip4Broadcast 255.255.255.255 +config defaults time + option rdate_servers "128.138.140.44 171.64.7.77 171.64.7.99 81.169.154.44 130.133.1.10" + + config community leipzig option name "Freifunk Leipzig" option homepage http://leipzig.freifunk.net diff --git a/modules/freifunk/root/etc/init.d/freifunk b/modules/freifunk/root/etc/init.d/freifunk index 13dfde7f6..79bcbc7ba 100755 --- a/modules/freifunk/root/etc/init.d/freifunk +++ b/modules/freifunk/root/etc/init.d/freifunk @@ -17,6 +17,10 @@ boot() { echo "*/5 * * * * /usr/sbin/ff_olsr_watchdog" >> /etc/crontabs/root } + grep -q '/usr/sbin/ff_rdate' /etc/crontabs/root || { + echo "0 */4 * * * /usr/sbin/ff_rdate >> /etc/crontabs/root + } + [ -f /etc/rc.local ] && . /etc/rc.local [ -d /etc/rc.local.d ] && { for file in /etc/rc.local.d/*; do @@ -24,5 +28,5 @@ boot() { done } - /etc/init.d/cron restart + ( /usr/sbin/ff_rdate; /etc/init.d/cron restart ) & } diff --git a/modules/freifunk/root/usr/sbin/ff_rdate b/modules/freifunk/root/usr/sbin/ff_rdate new file mode 100755 index 000000000..5a728f673 --- /dev/null +++ b/modules/freifunk/root/usr/sbin/ff_rdate @@ -0,0 +1,21 @@ +#!/bin/sh + +uci_get_one() { + for var in "$@"; do + uci -P /var/state get "$var" 2>/dev/null && break + done +} + +local servers=$(uci_get_one "network.wan.lease_timesrv" \ + "system.time.rdate_servers" "freifunk.time.rdate_servers") + +if [ -n "$servers" ]; then + for server in $servers; do + rdate -s $server >/dev/null 2>/dev/null && \ + logger -t rdate "Synced with $server" && break + + logger -t rdate "Failed to sync with $server" + done +else + logger -t rdate "No usable time server found" +fi