diff options
author | Stephen Hemminger <stephen.hemminger@vyatta.com> | 2009-01-09 14:52:24 -0800 |
---|---|---|
committer | Stephen Hemminger <stephen.hemminger@vyatta.com> | 2009-01-12 11:15:31 -0800 |
commit | 64d4f5736b9c8dfe2a516cd03a8699fe1463cff1 (patch) | |
tree | ba3272c8861bf16b99e292a2b2432380916233d8 | |
parent | 5a1dfa9b190f57cbda4e4af78fc8ba214f65c8d7 (diff) | |
download | vyatta-cfg-64d4f5736b9c8dfe2a516cd03a8699fe1463cff1.tar.gz vyatta-cfg-64d4f5736b9c8dfe2a516cd03a8699fe1463cff1.zip |
Restore IPV6 addresses when interface re-enabled
Bugfix: 3696
Force restore of IPV6 addresses when interface is enabled
-rw-r--r-- | scripts/vyatta-interfaces.pl | 5 | ||||
-rw-r--r-- | templates/interfaces/ethernet/node.tag/disable/node.def | 5 | ||||
-rw-r--r-- | templates/interfaces/ethernet/node.tag/vif/node.tag/disable/node.def | 5 |
3 files changed, 9 insertions, 6 deletions
diff --git a/scripts/vyatta-interfaces.pl b/scripts/vyatta-interfaces.pl index 8614591..e890f9c 100644 --- a/scripts/vyatta-interfaces.pl +++ b/scripts/vyatta-interfaces.pl @@ -199,12 +199,13 @@ sub restore_ipv6_addr { exit 1; } - foreach my $addr ($config->listNodes('address')) { + foreach my $addr ($config->returnValues('address')) { next if ($addr eq 'dhcp'); my $version = is_ip_v4_or_v6($addr); next unless $version; next unless ($version == 6); - system("ip -6 addr add $addr dev $intf"); + system("sudo ip -6 addr add $addr dev $intf") == 0 + or die "restoring $addr failed: $!\n"; } } diff --git a/templates/interfaces/ethernet/node.tag/disable/node.def b/templates/interfaces/ethernet/node.tag/disable/node.def index 54090cc..1dcaf17 100644 --- a/templates/interfaces/ethernet/node.tag/disable/node.def +++ b/templates/interfaces/ethernet/node.tag/disable/node.def @@ -1,3 +1,4 @@ help: Set interface disabled -update:expression: "sudo ip link set $VAR(../@) down"; "Error disabling dev $VAR(../@)" -delete:expression: "sudo ip link set $VAR(../@) up"; "Error enabling dev $VAR(../@)" +update: sudo ip link set $VAR(../@) down +delete: sudo ip link set $VAR(../@) up + /opt/vyatta/sbin/vyatta-interfaces.pl --dev $VAR(../@) --restore-ipv6 diff --git a/templates/interfaces/ethernet/node.tag/vif/node.tag/disable/node.def b/templates/interfaces/ethernet/node.tag/vif/node.tag/disable/node.def index 9599de3..61cdbe8 100644 --- a/templates/interfaces/ethernet/node.tag/vif/node.tag/disable/node.def +++ b/templates/interfaces/ethernet/node.tag/vif/node.tag/disable/node.def @@ -1,3 +1,4 @@ help: Set interface disabled -update:expression: "sudo ip link set $VAR(../../@).$VAR(../@) down"; "Error disabling dev $VAR(../../@).$VAR(../@)" -delete:expression: "sudo ip link set $VAR(../../@).$VAR(../@) up"; "Error enabling dev $VAR(../../@).$VAR(../@)" +update:sudo ip link set $VAR(../../@).$VAR(../@) down +delete:sudo ip link set $VAR(../../@).$VAR(../@) up + /opt/vyatta/sbin/vyatta-interfaces.pl --dev $VAR(../../@).$VAR(../@) --restore-ipv6 |