diff --git a/ffs-set-segment/files/usr/sbin/ffs-set-segment b/ffs-set-segment/files/usr/sbin/ffs-set-segment index 80ed4aba3cb7555d1035a1d2686f104ffeb3af88..7ace458737c9fc1e3175be0705730c9557aabcf5 100755 --- a/ffs-set-segment/files/usr/sbin/ffs-set-segment +++ b/ffs-set-segment/files/usr/sbin/ffs-set-segment @@ -1,24 +1,24 @@ #!/bin/sh if [ $(ps | grep -c "{$(basename $0)}") -gt 4 ]; then + echo started twice exit 1 fi if [ $(ps | grep -c "fastd") -lt 2 ]; then + echo fastd not running exit 0 fi if [ "$(uci get fastd.mesh_vpn_backbone.auto_segment)" = "0" ]; then + echo auto_segment disabled exit 0 fi -NODEID=`uci get network.bat0.macaddr` -for i in `seq 1 5`; -do - NODEID=${NODEID/\:/} -done -NODEID=ffs-$NODEID -SEGMENT=`nslookup $NODEID.segassign.freifunk-stuttgart.de [::1]:54 |tail -n1 ` +NODEID=`uci get network.bat0.macaddr | sed 's/://g'` +PUBKEY=`/etc/init.d/fastd show_key mesh_vpn | cut -c1-12` +SEGMENT=`nslookup ffs-$NODEID-$PUBKEY.segassign.freifunk-stuttgart.de [::1]:54 | tail -n1` if [[ -z "${SEGMENT// }" ]]; then + echo Node not known exit 1 fi SEGMENT=${SEGMENT/Address 1: 2001:2:0:711::/} @@ -40,4 +40,5 @@ done if [ "$CHANGED" = "1" ]; then /etc/init.d/fastd restart + echo Segment set to $SEGNUM fi