luci-app-firewall: allow negative prefix lengths
authorJo-Philipp Wich <jo@mein.io>
Mon, 1 Mar 2021 14:18:25 +0000 (15:18 +0100)
committerJo-Philipp Wich <jo@mein.io>
Mon, 1 Mar 2021 14:18:25 +0000 (15:18 +0100)
Fixes: #4812
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js
applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js
applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js
applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js

index bc3dc12c997960153de41254f3c52d816bd3e477..ebdd345c983436d583ea43cf26149097bdef1f81 100644 (file)
@@ -444,7 +444,7 @@ return baseclass.extend({
                var o = s.taboption(tab, multiple ? this.CBIDynamicMultiValueList : form.Value, name, label, description);
 
                o.modalonly = true;
-               o.datatype = 'list(neg(ipmask))';
+               o.datatype = 'list(neg(ipmask("true")))';
                o.placeholder = multiple ? _('-- add IP --') : _('any');
 
                if (family != null) {
index 82703c320eaf346f05b89f3185bd944955b85b73..1c8c80656248def9e351b635eb2f30a9467b2dc1 100644 (file)
@@ -201,7 +201,7 @@ return view.extend({
                o = fwtool.addIPOption(s, 'advanced', 'src_ip', _('Source IP address'),
                        _('Only match incoming traffic from this IP or range.'), 'ipv4', hosts);
                o.rmempty = true;
-               o.datatype = 'neg(ipmask4)';
+               o.datatype = 'neg(ipmask4("true"))';
 
                o = s.taboption('advanced', form.Value, 'src_port', _('Source port'),
                        _('Only match incoming traffic originating from the given source port or port range on the client host'));
@@ -214,7 +214,7 @@ return view.extend({
 
                o = fwtool.addLocalIPOption(s, 'advanced', 'src_dip', _('External IP address'),
                        _('Only match incoming traffic directed at the given IP address.'), devs);
-               o.datatype = 'neg(ipmask4)';
+               o.datatype = 'neg(ipmask4("true"))';
                o.rmempty = true;
 
                o = s.taboption('general', form.Value, 'src_dport', _('External port'),
index 859dba3e88ae9c79974547b517b0bbf76ffdb6b7..1d6e01c1a8385946913994d2699eb7599188ffa5 100644 (file)
@@ -180,7 +180,7 @@ return view.extend({
                o = fwtool.addIPOption(s, 'general', 'src_ip', _('Source address'),
                        _('Match forwarded traffic from this IP or range.'), 'ipv4', hosts);
                o.rmempty = true;
-               o.datatype = 'neg(ipmask4)';
+               o.datatype = 'neg(ipmask4("true"))';
 
                o = s.taboption('general', form.Value, 'src_port', _('Source port'),
                        _('Match forwarded traffic originating from the given source port or port range.'));
@@ -194,7 +194,7 @@ return view.extend({
                o = fwtool.addIPOption(s, 'general', 'dest_ip', _('Destination address'),
                        _('Match forwarded traffic directed at the given IP address.'), 'ipv4', hosts);
                o.rmempty = true;
-               o.datatype = 'neg(ipmask4)';
+               o.datatype = 'neg(ipmask4("true"))';
 
                o = s.taboption('general', form.Value, 'dest_port', _('Destination port'),
                        _('Match forwarded traffic directed at the given destination port or port range.'));
index b319a4b849e1f111aded4115fa2ac302890bdbcc..f9d84bfb673ceb357629b9d647fa660b8af8767b 100644 (file)
@@ -224,7 +224,7 @@ return view.extend({
                o.multiple = true;
 
                o = s.taboption('advanced', form.DynamicList, 'subnet', _('Covered subnets'), _('Use this option to classify zone traffic by source or destination subnet instead of networks or devices.'));
-               o.datatype = 'neg(cidr)';
+               o.datatype = 'neg(cidr("true"))';
                o.modalonly = true;
                o.multiple = true;