diff options
author | Hannu Nyman <hannu.nyman@iki.fi> | 2017-02-27 21:50:52 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-02-27 21:50:52 +0200 |
commit | be8b920a2eae8c41999ad4f315931b7a6b5624b5 (patch) | |
tree | a321df359f4542735fc6c394c430754e69b6bb80 | |
parent | 829344d6767a2a9b5a1ee12cc0c0de5bbc2e7748 (diff) | |
parent | cd8333cf0b90c6498366c993f8135dbd29cd6000 (diff) |
Merge pull request #1039 from danrl/luci-proto-wireguard
luci-proto-wireguard: add support for fwmark option
-rw-r--r-- | modules/luci-base/luasrc/cbi/datatypes.lua | 8 | ||||
-rw-r--r-- | protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua | 20 |
2 files changed, 24 insertions, 4 deletions
diff --git a/modules/luci-base/luasrc/cbi/datatypes.lua b/modules/luci-base/luasrc/cbi/datatypes.lua index 62b0e0f61..cf5656628 100644 --- a/modules/luci-base/luasrc/cbi/datatypes.lua +++ b/modules/luci-base/luasrc/cbi/datatypes.lua @@ -283,6 +283,14 @@ function hexstring(val) return false end +function hex(val, maxbytes) + maxbytes = tonumber(maxbytes) + if val and maxbytes ~= nil then + return ((val:match("^0x[a-fA-F0-9]+$") ~= nil) and (#val <= 2 + maxbytes * 2)) + end + return false +end + function base64(val) if val then return (val:match("^[a-zA-Z0-9/+]+=?=?$") ~= nil) and (math.fmod(#val, 4) == 0) diff --git a/protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua b/protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua index d95008119..11ef10b5a 100644 --- a/protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua +++ b/protocols/luci-proto-wireguard/luasrc/model/cbi/admin_network/proto_wireguard.lua @@ -19,7 +19,7 @@ private_key = section:taboption( translate("Required. Base64-encoded private key for this interface.") ) private_key.password = true -private_key.datatype = "and(base64,rangelength(44, 44))" +private_key.datatype = "and(base64,rangelength(44,44))" private_key.optional = false @@ -81,10 +81,22 @@ preshared_key = section:taboption( "cryptography for post-quantum resistance.") ) preshared_key.password = true -preshared_key.datatype = "and(base64,rangelength(44, 44))" +preshared_key.datatype = "and(base64,rangelength(44,44))" preshared_key.optional = true +fwmark = section:taboption( + "advanced", + Value, + "fwmark", + translate("Firewall Mark"), + translate("Optional. 32-bit mark for outgoing encrypted packets. " .. + "Enter value in hex, starting with <code>0x</code>.") +) +fwmark.datatype = "hex(4)" +fwmark.optional = true + + -- peers ----------------------------------------------------------------------- peers = map:section( @@ -105,7 +117,7 @@ public_key = peers:option( translate("Public Key"), translate("Required. Base64-encoded public key of peer.") ) -public_key.datatype = "and(base64,rangelength(44, 44))" +public_key.datatype = "and(base64,rangelength(44,44))" public_key.optional = false @@ -155,5 +167,5 @@ persistent_keepalive = peers:option( translate("Optional. Seconds between keep alive messages. " .. "Default is 0 (disabled). Recommended value if " .. "this device is behind a NAT is 25.")) -persistent_keepalive.datatype = "range(0, 65535)" +persistent_keepalive.datatype = "range(0,65535)" persistent_keepalive.placeholder = "0" |