diff --git a/tinc/subnet-down b/tinc/subnet-down new file mode 100644 index 0000000..700d32f --- /dev/null +++ b/tinc/subnet-down @@ -0,0 +1,24 @@ +#!/bin/ash +echo "Route down: $SUBNET weight $WEIGHT via $NODE ($REMOTEADDRESS:$REMOTEPORT)" +nonMACChars=`echo $SUBNET | tr -d "[:digit:]" | tr -d [:ABCDEFabcdef]` +date=`date -u` + +if [ -z "$nonMACChars" ]; then + # This subnet is a MAC + rm -f /tmp/tinc_peer_mac_$NODE_$SUBNET + + +else + # This subnet is an IP address + if echo "$SUBNET" | grep -q -E ".+/32$"; then + address=`echo "$SUBNET" | cut -d '/' -f 1` + rm -f /tmp/tinc_peer_mac_$NODE_$address + if arp -an | grep -q "\($address\)"; then + echo "Unmapping $addresss + fi + fi +fi + +SCRIPT=$(readlink -f "$0") +SCRIPTPATH=$(dirname "$SCRIPT") +$SCRIPTPATH/check-node diff --git a/tinc/subnet-down.tmpl b/tinc/subnet-down.tmpl deleted file mode 100644 index 794774a..0000000 --- a/tinc/subnet-down.tmpl +++ /dev/null @@ -1,17 +0,0 @@ -#!/bin/ash -echo "Route down: \$SUBNET weight \$WEIGHT via \$NODE (\$REMOTEADDRESS:\$REMOTEPORT)" -nonMACChars=`echo \$SUBNET | tr -d "[:digit:]" | tr -d [:ABCDEFabcdef]` -date=`date -u` - -if [ -z "\$nonMACChars" ]; then - # This subnet is a MAC - rm /tmp/tinc_peer_mac_\$NODE_\$SUBNET -else - # This subnet is an IP address - if echo "\$SUBNET" | grep -q -E ".+/32\$"; then - address=`echo "\$SUBNET" | cut -d '/' -f 1` - rm /tmp/tinc_peer_mac_\$NODE_\$address - fi -fi - -./check-node