summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--aconf/model/net.lua8
1 files changed, 7 insertions, 1 deletions
diff --git a/aconf/model/net.lua b/aconf/model/net.lua
index f01c4c6..2f8c1fd 100644
--- a/aconf/model/net.lua
+++ b/aconf/model/net.lua
@@ -187,13 +187,19 @@ function M.IPv6Address:cidr2mask(cidr) return cidr end
--- IP address field, inherits @{String}. Accepts both IPv4 and IPv6
-- address values.
-- @fclass net.IPAddress
+-- @tparam boolean cidr if set to true, the field accepts a network
+-- address in CIDR notation
M.IPAddress = class(Union)
function M.IPAddress:init(params)
+ local p = {cidr=params and params.cidr}
super(self, M.IPAddress):init(
update(
params,
- {types={M.IPv4Address, M.IPv6Address}, error='Invalid IP address'}
+ {
+ types={M.IPv4Address(p), M.IPv6Address(p)},
+ error='Invalid IP address'
+ }
)
)
end