diff options
author | Jo-Philipp Wich <jow@openwrt.org> | 2008-09-04 23:39:55 +0000 |
---|---|---|
committer | Jo-Philipp Wich <jow@openwrt.org> | 2008-09-04 23:39:55 +0000 |
commit | 35a529a5c56df3dbcd105f691d164f4f85283611 (patch) | |
tree | c54370257557c67f9327944bb06a122a34a5d6a8 | |
parent | 76145b3e254047aab2a526aa26120025289157c8 (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.lua | 14 | ||||
-rw-r--r-- | libs/uvl/root/lib/uci/schema/default/firewall | 10 |
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' |