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 8197714b07e5c83d03b8ed18a7b204a938e35888..15dfcf08112d1e83fb388debdfeeed47773a241e 100755 --- a/ffs-set-segment/files/etc/init.d/ffs-set-segment +++ b/ffs-set-segment/files/etc/init.d/ffs-set-segment @@ -8,7 +8,6 @@ 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 7759bbff3d07ef98c46402e40a51cb456ff876bb..3fe94ea5881eb82cb3e07b3adcd8fef8fc9ae7e9 100755 --- a/ffs-set-segment/files/usr/sbin/ffs-set-segment +++ b/ffs-set-segment/files/usr/sbin/ffs-set-segment @@ -1,6 +1,4 @@ #!/bin/sh -SEGSET=/tmp/.seg.ffs - ME=$(basename $0) if [ $(ps | grep -c "$ME") -gt 4 ]; then logger -s -t $ME "started twice" @@ -24,20 +22,30 @@ fi NODEID=$(uci get network.bat0.macaddr | sed 's/://g') PUBKEY=$(/etc/init.d/fastd show_key mesh_vpn | cut -c1-12) -GITSEG=$(nslookup ffs-${NODEID}-${PUBKEY}.segassign.freifunk-stuttgart.de ::1#54 | grep "2001:2:0:711::" | cut -d':' -f7) +DNSDOM="freifunk-stuttgart.de" +DNSREQ="ffs-${NODEID}-${PUBKEY}.segassign.${DNSDOM}" + +logger -t $ME "DNSv6 on ${DNSREQ} ..." +GITSEG=$(nslookup ${DNSREQ} ::1#54 | grep "2001:2:0:711::" | cut -d':' -f7) if [ -z "$GITSEG" ]; then - 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 + logger -t $ME "DNSv4 on ${DNSREQ} ..." + GITSEG=$(nslookup ${DNSREQ} ::1#54 | grep "198.18.190." | cut -d'.' -f4) +fi + +if [ -z "$GITSEG" ]; then + logger -t $ME "DNS not working!" + exit 1 else if [ -n "$BATSEG" ] && [ "$BATSEG" != "$GITSEG" ]; then - logger -t $ME "Avoiding Shortcut" + logger -t $ME "Avoiding Shortcut: $BATSEG - $GITSEG" GITSEG=99 + else + if [ "$GITSEG" = "99" ]; then + logger -t $ME "Node not registered" + else + logger -t $ME "Node is in Segment $GITSEG" + fi fi fi @@ -48,7 +56,7 @@ for i in `seq 1 10`; do GW=$(printf "gw%02d" $i) OLDPEER=$(uci get fastd.mesh_vpn_backbone_peer_${GW}.remote) - NEWPEER=$(printf "\"gw%02ds%02d.gw.freifunk-stuttgart.de\" port %d" $i $GITSEG $PORT) + NEWPEER=$(printf "\"gw%02ds%02d.gw.${DNSDOM}\" port %d" $i $GITSEG $PORT) if [ "$NEWPEER" != "$OLDPEER" ]; then uci set fastd.mesh_vpn_backbone_peer_${GW}.remote="$NEWPEER" @@ -57,12 +65,6 @@ do done if [ "$CHANGED" = "1" ]; then - if [ "$GITSEG" = "99" ]; then - rm $SEGSET - else - echo $GITSEG >$SEGSET - fi - /sbin/ifdown client /etc/init.d/fastd restart /sbin/ifup client