summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBob Gilligan <gilligan@vyatta.com>2009-09-09 17:38:00 -0700
committerBob Gilligan <gilligan@vyatta.com>2009-09-09 17:38:00 -0700
commitd32ceb43ab64530c6eca81ec83fe4b374dd510d0 (patch)
tree842bbac0327b381495fc3e5290ff8f600e440ef9
parent8d560c20d6b9799b48b8c442581a25114bb16d78 (diff)
downloadvyatta-cfg-d32ceb43ab64530c6eca81ec83fe4b374dd510d0.tar.gz
vyatta-cfg-d32ceb43ab64530c6eca81ec83fe4b374dd510d0.zip
Bugfix 4700, 4269: Fix set and commit-time checks for ethernet vif addresses too
Also restore "--valid-addr" flag to vyatta-interfaces.pl since it is used outside this package.
-rwxr-xr-xscripts/vyatta-interfaces.pl1
-rw-r--r--templates/interfaces/ethernet/node.tag/vif/node.tag/address/node.def17
-rw-r--r--templates/interfaces/loopback/node.tag/address/node.def5
3 files changed, 21 insertions, 2 deletions
diff --git a/scripts/vyatta-interfaces.pl b/scripts/vyatta-interfaces.pl
index ac690c5..0ae5330 100755
--- a/scripts/vyatta-interfaces.pl
+++ b/scripts/vyatta-interfaces.pl
@@ -71,6 +71,7 @@ EOF
GetOptions("eth-addr-update=s" => \$eth_update,
"eth-addr-delete=s" => \$eth_delete,
+ "valid-addr=s" => \$addr_set,
"valid-addr-set=s" => \$addr_set,
"valid-addr-commit=s{,}" => \@addr_commit,
"dev=s" => \$dev,
diff --git a/templates/interfaces/ethernet/node.tag/vif/node.tag/address/node.def b/templates/interfaces/ethernet/node.tag/vif/node.tag/address/node.def
index 4c93905..a5edef6 100644
--- a/templates/interfaces/ethernet/node.tag/vif/node.tag/address/node.def
+++ b/templates/interfaces/ethernet/node.tag/vif/node.tag/address/node.def
@@ -1,11 +1,26 @@
multi:
+
type: txt
+
help: Set an IP address for this interface
-syntax:expression: exec "/opt/vyatta/sbin/vyatta-interfaces.pl --valid-addr $VAR(@) --dev $VAR(../../@).$VAR(../@) "\
+
+# Syntax check at "set" time. Give curent address value to script
+# so that it can perform syntax check.
+#
+syntax:expression: exec "/opt/vyatta/sbin/vyatta-interfaces.pl --valid-addr-set $VAR(@) --dev $VAR(../../@).$VAR(../@) "\
; "Invalid IP address/prefix [$VAR(@)] for interface $VAR(../../@).$VAR(../@)"
+
+# Syntax check at "commit" time. Pass all address values to script so that
+# it can perform consistency check.
+#
+commit:expression: exec "/opt/vyatta/sbin/vyatta-interfaces.pl --valid-addr-commit $VAR(@@) --dev $VAR(../../@).$VAR(../@)"
+
create:sudo /opt/vyatta/sbin/vyatta-interfaces.pl --eth-addr-update $VAR(@) --dev $VAR(../../@).$VAR(../@)
+
delete:sudo /opt/vyatta/sbin/vyatta-interfaces.pl --eth-addr-delete $VAR(@) --dev $VAR(../../@).$VAR(../@)
+
allowed: echo "dhcp <>"
+
comp_help:Possible completions:
<x.x.x.x/x> Set the IP address and prefix length
<h:h:h:h:h:h:h:h/x> Set the IPv6 address and prefix length
diff --git a/templates/interfaces/loopback/node.tag/address/node.def b/templates/interfaces/loopback/node.tag/address/node.def
index 29e8973..76c2e76 100644
--- a/templates/interfaces/loopback/node.tag/address/node.def
+++ b/templates/interfaces/loopback/node.tag/address/node.def
@@ -1,7 +1,10 @@
multi:
+
type: txt
+
help: Set an IP address for this interface
-syntax:expression: exec "/opt/vyatta/sbin/vyatta-interfaces.pl --valid-addr $VAR(@) --dev $VAR(../@)"; \
+
+syntax:expression: exec "/opt/vyatta/sbin/vyatta-interfaces.pl --valid-addr-set $VAR(@) --dev $VAR(../@)"; \
"Invalid IP address/prefix [$VAR(@)] for interface $VAR(../@)"
create:expression: "sudo /opt/vyatta/sbin/vyatta-interfaces.pl --eth-addr-update $VAR(@) --dev $VAR(../@)"; \