summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniil Baturin <daniil@baturin.org>2018-11-05 03:03:54 +0100
committerDaniil Baturin <daniil@baturin.org>2018-11-05 03:04:52 +0100
commit963040ae7bbe00177d9567a4bdb02f432d1638e4 (patch)
tree34d8a88ff3afa47f2907a9f79faa07f6f1c76d03
parent9d1814be05894ce4417512de92b58b15dbeec3ed (diff)
downloadvyatta-cfg-system-963040ae7bbe00177d9567a4bdb02f432d1638e4.tar.gz
vyatta-cfg-system-963040ae7bbe00177d9567a4bdb02f432d1638e4.zip
T288: normalize IP(v6) addresses before passing them to iproute2.
-rwxr-xr-xscripts/vyatta-address10
1 files changed, 6 insertions, 4 deletions
diff --git a/scripts/vyatta-address b/scripts/vyatta-address
index 4491c3f0..c3e57856 100755
--- a/scripts/vyatta-address
+++ b/scripts/vyatta-address
@@ -32,11 +32,13 @@ case $1 in
ip_address=$(sed -n 's/^\s\sfixed-address\s\(.*\);/\1/p' $lease_file | sed -n '$p');
elif [[ "$3" = "dhcpv6" ]]; then
lease_file=/var/lib/dhcp/dhclient_v6_"$2".leases;
- ip_address=$(sed -n 's/^\s\s\s\siaaddr\s\(.*\)\s{/\1/p' $lease_file | sed -n '$p');
+ ip_address=$(sed -n 's/^\s\s\s\siaaddr\s\(.*\)\s{/\1/p' $lease_file | sed -n '$p');
else
ip_address=$3;
fi
-
+
+ ip_address=$(/usr/libexec/vyos/system/normalize-ip $ip_address)
+
if ! ip address show dev $2 2>/dev/null | grep -q "$ip_address"; then
# Address doesn't exist there, nothing to delete
exit 0
@@ -50,9 +52,9 @@ case $1 in
elif [[ "$3" = "dhcpv6" ]]; then
exec /opt/vyatta/sbin/vyatta-dhcpv6-client.pl --stop --ifname "$2"
elif [[ "$3" =~ ":" ]]; then
- exec sudo ip -6 addr del "$3" dev "$2"
+ exec sudo ip -6 addr del "$ip_address" dev "$2"
else
- exec sudo ip addr del "$3" dev "$2"
+ exec sudo ip addr del "$ip_address" dev "$2"
fi ;;
*)
echo "Unknown option $1"