From cb5fd4bb2a5b9cd2d42f89de9e750a8eec9c3f5d Mon Sep 17 00:00:00 2001 From: FFS-Roland <ffs-monitor@gmx.de> Date: Sat, 8 Sep 2018 17:12:14 +0200 Subject: [PATCH] Avoiding lock out after manually changing /etc/conf/fastd with uci commit. --- .../files/usr/sbin/ffs-set-segment | 36 +++++++++---------- 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/ffs-set-segment/files/usr/sbin/ffs-set-segment b/ffs-set-segment/files/usr/sbin/ffs-set-segment index dc42cf6..b0fe05f 100755 --- a/ffs-set-segment/files/usr/sbin/ffs-set-segment +++ b/ffs-set-segment/files/usr/sbin/ffs-set-segment @@ -12,34 +12,34 @@ if [ "$(uci get fastd.mesh_vpn_backbone.auto_segment)" = "0" ]; then logger -t $ME "auto_segment disabled" exit 0 fi +if [ "$(cat /proc/uptime | cut -d'.' -f1)" -lt 60 ]; then + logger -t $ME "waiting for batman" + exit 0 +fi +BATSEG=$(batctl gwl | grep '* ' | cut -d' ' -f2 | cut -d':' -f4) NODEID=$(uci get network.bat0.macaddr | sed 's/://g') PUBKEY=$(/etc/init.d/fastd show_key mesh_vpn | cut -c1-12) SEGINFO=$(nslookup ffs-${NODEID}-${PUBKEY}.segassign.freifunk-stuttgart.de ::1#54 | grep "2001:2:0:711::") + if [ -z "$SEGINFO" ]; then logger -t $ME "Node not registered" - exit 1 -fi -SEGINFO=${SEGINFO/Address 1: 2001:2:0:711::/} -SEGMENT=$(echo $SEGINFO |cut -d' ' -f1 | cut -d':' -f2) -let PORT=SEGMENT+10200 -if [ $PORT -le 10200 ]; then - logger -t $ME "Invalid Segment" - exit 1 -fi - -if [ "$(cat /proc/uptime | cut -d'.' -f1)" -lt 60 ]; then - logger -t $ME "waiting for batman" - exit 0 + GITSEG=00 +else + GITSEG=$(printf "%02d" $(echo ${SEGINFO/Address 1: 2001:2:0:711::/} |cut -d' ' -f1 | cut -d':' -f2)) fi -GITSEG=$(printf "%02d" $SEGMENT) -BATSEG=$(batctl gwl | grep '* ' | cut -d' ' -f2 | cut -d':' -f4) -if [ -n "$BATSEG" ] && [ "$BATSEG" != "$GITSEG" ]; then - logger -t $ME "Avoiding Shortcut" - exit 1 +if [ "$GITSEG" == "00" ]; then + logger -t $ME "Unknown Segment" + GITSEG=99 +else + if [ -n "$BATSEG" ] && [ "$BATSEG" != "$GITSEG" ]; then + logger -t $ME "Avoiding Shortcut" + GITSEG=99 + fi fi +let PORT=GITSEG+10200 CHANGED=0 for i in `seq 1 10`; do -- GitLab