naywatch: introduce kick-count
[feed/routing.git] / naywatch / files / naywatch.sh
index e6d2fb75fce61e4f8d6ab6a10b2ea3c38d23032d..362746493e885e6d9a2f43c63d76f49eaecdb1a0 100644 (file)
@@ -14,6 +14,8 @@ shift
 INTERFACES="$*"
 
 ACTIVE=0
+NO_NEIGHBORS_COUNT=0
+MIN_KICK=5
 
 log() {
     local msg="$1"
@@ -67,6 +69,8 @@ reboot_now() {
 no_neighbors() {
     log "No Neighbors Available!"
 
+    NO_NEIGHBORS_COUNT=$(($NO_NEIGHBORS_COUNT+1))
+
     if [ $ACTIVE -eq 0 ]; then
         return 0
     fi
@@ -76,7 +80,7 @@ no_neighbors() {
         write_logs
     fi
 
-    if [ $USE_WATCHDOG -eq 0 ]; then
+    if [ $USE_WATCHDOG -eq 0 ] && [ $NO_NEIGHBORS_COUNT -gt $MIN_KICK ]; then
         reboot_now
     fi
 }
@@ -85,6 +89,7 @@ log "Naywatch Started!"
 
 neighbors() {
     ACTIVE=1
+    NO_NEIGHBORS_COUNT=0
     if [ $USE_WATCHDOG -eq 1 ]; then
         echo 1 >&3
     fi