luci-mod-network: fix handling of peerdns/dns/dns_search options

The previous change didn't take dynamic dependency mangling into account.

Fixes: 2bfd4908a9 ("luci-mod-network: restore DNS option semantics for proto static")
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(cherry picked from commit 9a92f9c761)
This commit is contained in:
Jo-Philipp Wich 2021-03-21 00:50:27 +01:00 committed by Rafał Miłecki
parent 7684c18604
commit dec5d8099e

View file

@ -679,17 +679,19 @@ return view.extend({
o = nettools.replaceOption(s, 'advanced', form.Flag, 'defaultroute', _('Use default gateway'), _('If unchecked, no default route is configured'));
o.default = o.enabled;
o = nettools.replaceOption(s, 'advanced', form.Flag, 'peerdns', _('Use DNS servers advertised by peer'), _('If unchecked, the advertised DNS server addresses are ignored'));
o.depends({ 'proto': 'static', '!reverse': true });
o.default = o.enabled;
if (protoval != 'static') {
o = nettools.replaceOption(s, 'advanced', form.Flag, 'peerdns', _('Use DNS servers advertised by peer'), _('If unchecked, the advertised DNS server addresses are ignored'));
o.default = o.enabled;
}
o = nettools.replaceOption(s, 'advanced', form.DynamicList, 'dns', _('Use custom DNS servers'));
o.depends('proto', 'static');
o.depends('peerdns', '0');
if (protoval != 'static')
o.depends('peerdns', '0');
o.datatype = 'ipaddr';
o = nettools.replaceOption(s, 'advanced', form.DynamicList, 'dns_search', _('DNS search domains'));
o.depends('peerdns', '0');
if (protoval != 'static')
o.depends('peerdns', '0');
o.datatype = 'hostname';
o = nettools.replaceOption(s, 'advanced', form.Value, 'dns_metric', _('DNS weight'), _('The DNS server entries in the local resolv.conf are primarily sorted by the weight specified here'));