From 2417ef727e7a972d1cba1359daa2980334a6881c Mon Sep 17 00:00:00 2001 From: root <root@monitor01.freifunk-stuttgart.de> Date: Thu, 4 Jun 2020 14:20:28 +0200 Subject: [PATCH] Keep Segment setting if DNS is temporary not available. --- ffs-set-segment/files/etc/init.d/ffs-set-segment | 1 + ffs-set-segment/files/usr/sbin/ffs-set-segment | 13 +++++++++++-- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/ffs-set-segment/files/etc/init.d/ffs-set-segment b/ffs-set-segment/files/etc/init.d/ffs-set-segment index 15dfcf0..8197714 100755 --- a/ffs-set-segment/files/etc/init.d/ffs-set-segment +++ b/ffs-set-segment/files/etc/init.d/ffs-set-segment @@ -8,6 +8,7 @@ start () { /etc/init.d/fastd restart fi + rm /tmp/.seg.ffs /etc/init.d/micrond enable /etc/init.d/micrond restart } diff --git a/ffs-set-segment/files/usr/sbin/ffs-set-segment b/ffs-set-segment/files/usr/sbin/ffs-set-segment index 6435ab0..00c2988 100755 --- a/ffs-set-segment/files/usr/sbin/ffs-set-segment +++ b/ffs-set-segment/files/usr/sbin/ffs-set-segment @@ -1,4 +1,6 @@ #!/bin/sh +SEGSET=/tmp/.seg.ffs + ME=$(basename $0) if [ $(ps | grep -c "$ME") -gt 4 ]; then logger -s -t $ME "started twice" @@ -23,12 +25,18 @@ BATSEG=$(batctl gwl | grep '02:00:3' | tail -1 | sed 's/:0/:/g' | cut -d':' -f4) GITSEG=$(nslookup ffs-${NODEID}-${PUBKEY}.segassign.freifunk-stuttgart.de ::1#54 | grep "2001:2:0:711::" | cut -d':' -f7) if [ -z "$GITSEG" ]; then - logger -t $ME "Node not registered" - GITSEG=99 + if [ -f $SEGSET ]; then + GITSEG=$(cat $SEGSET) + logger -t $ME "Node is in Segment: $GITSEG" + else + logger -t $ME "Node not registered" + GITSEG=99 + fi else if [ -n "$BATSEG" ] && [ "$BATSEG" != "$GITSEG" ]; then logger -t $ME "Avoiding Shortcut" GITSEG=99 + rm $SEGSET fi fi @@ -51,6 +59,7 @@ if [ "$CHANGED" = "1" ]; then /sbin/ifdown client /etc/init.d/fastd restart /sbin/ifup client + echo $GITSEG >$SEGSET logger -t $ME "Set Segment: $GITSEG" else logger -t $ME "No changes" -- GitLab