diff --git a/ffs-set-segment/files/usr/sbin/ffs-set-segment b/ffs-set-segment/files/usr/sbin/ffs-set-segment index dc42cf65423cea56164255c2982d1c99d77ce18f..b0fe05fc46e436f8d7c7a878216132d353d53daf 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