summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorJo-Philipp Wich <jow@openwrt.org>2008-09-04 23:39:55 +0000
committerJo-Philipp Wich <jow@openwrt.org>2008-09-04 23:39:55 +0000
commit35a529a5c56df3dbcd105f691d164f4f85283611 (patch)
treec54370257557c67f9327944bb06a122a34a5d6a8
parent76145b3e254047aab2a526aa26120025289157c8 (diff)
* luci/libs/uvl:
- implement port and portrange datatypes - fix datatype of port ranges in firewall scheme
-rw-r--r--libs/uvl/luasrc/uvl/datatypes.lua14
-rw-r--r--libs/uvl/root/lib/uci/schema/default/firewall10
2 files changed, 19 insertions, 5 deletions
diff --git a/libs/uvl/luasrc/uvl/datatypes.lua b/libs/uvl/luasrc/uvl/datatypes.lua
index 60377e289..e6a4c1688 100644
--- a/libs/uvl/luasrc/uvl/datatypes.lua
+++ b/libs/uvl/luasrc/uvl/datatypes.lua
@@ -83,6 +83,20 @@ function ip6prefix( val )
return ( val and val >= 0 and val <= 128 )
end
+function port( val )
+ val = tonumber(val)
+ return ( val and val >= 1 and val <= 65535 )
+end
+
+function portrange( val )
+ local p1, p2 = val:match("^(%d+)%-(%d+)$")
+ if p1 and p2 and port(p1) and port(p2) then
+ return true
+ else
+ return port(val)
+ end
+end
+
function macaddr( val )
if val and val:match(
"^[a-fA-F0-9]+:[a-fA-F0-9]+:[a-fA-F0-9]+:" ..
diff --git a/libs/uvl/root/lib/uci/schema/default/firewall b/libs/uvl/root/lib/uci/schema/default/firewall
index e421b1103..fc58705cd 100644
--- a/libs/uvl/root/lib/uci/schema/default/firewall
+++ b/libs/uvl/root/lib/uci/schema/default/firewall
@@ -121,7 +121,7 @@ config variable
option name 'src_port'
option title 'Source port'
option section 'firewall.rule'
- option datatype 'uint'
+ option datatype 'portrange'
config variable
option name 'src_mac'
@@ -145,7 +145,7 @@ config variable
option name 'dest_port'
option title 'Destination port'
option section 'firewall.rule'
- option datatype 'uint'
+ option datatype 'portrange'
config variable
option name 'proto'
@@ -183,13 +183,13 @@ config variable
option name 'src_port'
option title 'Source port'
option section 'firewall.redirect'
- option datatype 'uint'
+ option datatype 'portrange'
config variable
option name 'src_dport'
option title 'Source destination port'
option section 'firewall.redirect'
- option datatype 'uint'
+ option datatype 'portrange'
config variable
option name 'src_mac'
@@ -213,7 +213,7 @@ config variable
option name 'dest_port'
option title 'Destination port'
option section 'firewall.redirect'
- option datatype 'uint'
+ option datatype 'portrange'
config variable
option name 'proto'