luci-mod-network: fixes to DHCP lease validation
- validate current form value IP instead of stored uci one - ensure to not pass non-string values to the validator - remove leftover debug code - simplify obtaining formvalues Signed-off-by: Jo-Philipp Wich <jo@mein.io>
This commit is contained in:
parent
00e41c3c49
commit
9d15a4e70c
1 changed files with 5 additions and 9 deletions
|
@ -67,12 +67,12 @@ CBILease6Status = form.DummyValue.extend({
|
||||||
});
|
});
|
||||||
|
|
||||||
function calculateNetwork(addr, mask) {
|
function calculateNetwork(addr, mask) {
|
||||||
addr = validation.parseIPv4(addr);
|
addr = validation.parseIPv4(String(addr));
|
||||||
|
|
||||||
if (!isNaN(mask))
|
if (!isNaN(mask))
|
||||||
mask = validation.parseIPv4(network.prefixToMask(+mask));
|
mask = validation.parseIPv4(network.prefixToMask(+mask));
|
||||||
else
|
else
|
||||||
mask = validation.parseIPv4(mask);
|
mask = validation.parseIPv4(String(mask));
|
||||||
|
|
||||||
if (addr == null || mask == null)
|
if (addr == null || mask == null)
|
||||||
return null;
|
return null;
|
||||||
|
@ -199,7 +199,7 @@ function validateMACAddr(pools, sid, s) {
|
||||||
this_macs = L.toArray(s).map(function(m) { return m.toUpperCase() });
|
this_macs = L.toArray(s).map(function(m) { return m.toUpperCase() });
|
||||||
|
|
||||||
for (var i = 0; i < pools.length; i++) {
|
for (var i = 0; i < pools.length; i++) {
|
||||||
var this_net_mask = calculateNetwork(uci.get('dhcp', sid, 'ip'), pools[i].netmask);
|
var this_net_mask = calculateNetwork(this.section.formvalue(sid, 'ip'), pools[i].netmask);
|
||||||
|
|
||||||
if (!this_net_mask)
|
if (!this_net_mask)
|
||||||
continue;
|
continue;
|
||||||
|
@ -241,8 +241,6 @@ return view.extend({
|
||||||
pools = hosts_duids_pools[2],
|
pools = hosts_duids_pools[2],
|
||||||
m, s, o, ss, so;
|
m, s, o, ss, so;
|
||||||
|
|
||||||
console.debug(pools);
|
|
||||||
|
|
||||||
m = new form.Map('dhcp', _('DHCP and DNS'), _('Dnsmasq is a combined <abbr title="Dynamic Host Configuration Protocol">DHCP</abbr>-Server and <abbr title="Domain Name System">DNS</abbr>-Forwarder for <abbr title="Network Address Translation">NAT</abbr> firewalls'));
|
m = new form.Map('dhcp', _('DHCP and DNS'), _('Dnsmasq is a combined <abbr title="Dynamic Host Configuration Protocol">DHCP</abbr>-Server and <abbr title="Domain Name System">DNS</abbr>-Forwarder for <abbr title="Network Address Translation">NAT</abbr> firewalls'));
|
||||||
|
|
||||||
s = m.section(form.TypedSection, 'dnsmasq', _('Server Settings'));
|
s = m.section(form.TypedSection, 'dnsmasq', _('Server Settings'));
|
||||||
|
@ -568,10 +566,8 @@ return view.extend({
|
||||||
so = ss.option(form.Value, 'ip', _('<abbr title="Internet Protocol Version 4">IPv4</abbr>-Address'));
|
so = ss.option(form.Value, 'ip', _('<abbr title="Internet Protocol Version 4">IPv4</abbr>-Address'));
|
||||||
so.datatype = 'or(ip4addr,"ignore")';
|
so.datatype = 'or(ip4addr,"ignore")';
|
||||||
so.validate = function(section, value) {
|
so.validate = function(section, value) {
|
||||||
var mac = this.map.lookupOption('mac', section),
|
var m = this.section.formvalue(section, 'mac'),
|
||||||
name = this.map.lookupOption('name', section),
|
n = this.section.formvalue(section, 'name');
|
||||||
m = mac ? mac[0].formvalue(section) : null,
|
|
||||||
n = name ? name[0].formvalue(section) : null;
|
|
||||||
|
|
||||||
if ((m == null || m == '') && (n == null || n == ''))
|
if ((m == null || m == '') && (n == null || n == ''))
|
||||||
return _('One of hostname or mac address must be specified!');
|
return _('One of hostname or mac address must be specified!');
|
||||||
|
|
Loading…
Reference in a new issue