luci-proto-wireguard: fix fwmark validation to allow 32 bit values

The iptables mark field is 32 bits wide, which is 4 bytes and so 8 hex
characters. Fix the fwmark validation to allow 8 characters in the hex
string.

Fixes: #5098
Suggested-by: Robert <32970961+differentblue@users.noreply.github.com>
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(cherry picked from commit bc1015f7db)
This commit is contained in:
Jo-Philipp Wich 2021-06-02 14:35:32 -04:00
parent 49e25bd03e
commit a6a6d61d9c

View file

@ -97,7 +97,7 @@ return network.registerProtocol('wireguard', {
o = s.taboption('advanced', form.Value, 'fwmark', _('Firewall Mark'), _('Optional. 32-bit mark for outgoing encrypted packets. Enter value in hex, starting with <code>0x</code>.'));
o.optional = true;
o.validate = function(section_id, value) {
if (value.length > 0 && !value.match(/^0x[a-fA-F0-9]{1,4}$/))
if (value.length > 0 && !value.match(/^0x[a-fA-F0-9]{1,8}$/))
return _('Invalid hexadecimal value');
return true;