From c5b253f7aec77423d47c337cbac4e5057b69a2b2 Mon Sep 17 00:00:00 2001 From: Manevolent Date: Thu, 13 Apr 2023 00:38:40 -0600 Subject: [PATCH] Update subnet-down --- tinc/subnet-down | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/tinc/subnet-down b/tinc/subnet-down index 330b1ca..49dfbbb 100644 --- a/tinc/subnet-down +++ b/tinc/subnet-down @@ -3,12 +3,13 @@ echo "[ROUTE] down: $SUBNET weight $WEIGHT via $NODE ($REMOTEADDRESS:$REMOTEPORT nonMACChars=`echo $SUBNET | tr -d "[:digit:]" | tr -d [:ABCDEFabcdef]` date=`date -u` arpEntries=`arp -an` +mkdir -p /tmp/tinc/peer/$NODE/mac/ /tmp/tinc/peer/$NODE/ip/ + if [ -z "$nonMACChars" ]; then # This subnet is a MAC - rm -f /tmp/tinc/$NODE_mac_$SUBNET + rm -f /tmp/tinc/peer/$NODE/mac/$SUBNET if echo $arpEntries | grep -q -E "at $SUBNET "; then - echo "" echo $arpEntries | grep -E "at 0?*$SUBNET0?* " | sed -r 's/^.+\((.+)\).+$/\1/g' | xargs -n1 echo "[ARP] Removing from table: " echo $arpEntries | grep -E "at 0?*$SUBNET0?* " | sed -r 's/^.+\((.+)\).+$/\1/g' | xargs -n1 arp -d fi @@ -16,7 +17,8 @@ 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/$NODE_ip_$address + rm -f /tmp/tinc/peer/$NODE/ip/$address + if echo $arpEntries | grep -q "\($address\)"; then echo "[ARP] Removing from table: $addresss" arp -d $address