luci-mod-network: fix handling of peerdns/dns/dns_search options
authorJo-Philipp Wich <jo@mein.io>
Sat, 20 Mar 2021 23:50:27 +0000 (00:50 +0100)
committerJo-Philipp Wich <jo@mein.io>
Sat, 20 Mar 2021 23:50:27 +0000 (00:50 +0100)
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>
modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js

index 02a2a89a57a8672600a60a8f6e23d39ccd932bba..d87d78396baebeaa136d2b8fc6ecfebe5f902cc0 100644 (file)
@@ -595,17 +595,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'));