summaryrefslogtreecommitdiffhomepage
path: root/modules
diff options
context:
space:
mode:
Diffstat (limited to 'modules')
-rw-r--r--modules/freifunk/root/etc/config/freifunk8
-rwxr-xr-xmodules/freifunk/root/etc/init.d/freifunk4
-rwxr-xr-xmodules/freifunk/root/usr/sbin/ff_olsr_watchdog29
3 files changed, 33 insertions, 8 deletions
diff --git a/modules/freifunk/root/etc/config/freifunk b/modules/freifunk/root/etc/config/freifunk
index 862c86dbb5..c8eeee2236 100644
--- a/modules/freifunk/root/etc/config/freifunk
+++ b/modules/freifunk/root/etc/config/freifunk
@@ -76,14 +76,6 @@ config defaults dhcp
config defaults olsr_interface
- option HelloInterval 6.0
- option HelloValidityTime 108.0
- option TcInterval 4.0
- option TcValidityTime 324.0
- option MidInterval 18.0
- option MidValidityTime 324.0
- option HnaInterval 18.0
- option HnaValidityTime 108.0
config community leipzig
diff --git a/modules/freifunk/root/etc/init.d/freifunk b/modules/freifunk/root/etc/init.d/freifunk
index 61bd58055b..a61f8b7a17 100755
--- a/modules/freifunk/root/etc/init.d/freifunk
+++ b/modules/freifunk/root/etc/init.d/freifunk
@@ -13,6 +13,10 @@ boot() {
echo "* * * * * /usr/sbin/ff_olsr_test_gw" >> /etc/crontabs/root
}
+ grep -q '/usr/sbin/ff_olsr_watchdog' /etc/crontabs/root || {
+ echo "*/5 * * * * /usr/sbin/ff_olsr_watchdog" >> /etc/crontabs/root
+ }
+
[ -f /etc/rc.local ] && . /etc/rc.local
[ -d /etc/rc.local.d ] && {
for file in /etc/rc.local.d/*; do
diff --git a/modules/freifunk/root/usr/sbin/ff_olsr_watchdog b/modules/freifunk/root/usr/sbin/ff_olsr_watchdog
new file mode 100755
index 0000000000..2b4fabed16
--- /dev/null
+++ b/modules/freifunk/root/usr/sbin/ff_olsr_watchdog
@@ -0,0 +1,29 @@
+#!/usr/bin/lua
+
+require "os"
+require "io"
+require "uci"
+require "posix"
+
+if posix.access("/var/run/olsrd.pid") then
+ local stamp, intv
+ local x = uci.cursor()
+
+ x:foreach("olsrd", "LoadPlugin",
+ function(s)
+ if s.library == "olsrd_watchdog.so.0.1" then
+ intv = tonumber(s.interval)
+ stamp = s.file
+ end
+ end)
+
+ if intv and posix.access(stamp) then
+ local systime = os.time()
+ local wdgtime = tonumber(io.lines(stamp)())
+
+ if not wdgtime or ( systime - wdgtime ) > intv then
+ os.execute("logger -t 'OLSR watchdog' 'Process died - restarting!'")
+ os.execute("/etc/init.d/olsrd restart")
+ end
+ end
+end