diff options
-rw-r--r-- | aconf/model/net.lua | 8 |
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 |