luci-mod-network: restrict peerdns option to protocols that implemenent it
Only some supported protocol extensions honour the `peerdns` options. Fixes: #6093 Signed-off-by: Jo-Philipp Wich <jo@mein.io>
This commit is contained in:
parent
20b765c77b
commit
2be01cbfcb
1 changed files with 18 additions and 2 deletions
|
@ -228,6 +228,22 @@ function get_netmask(s, use_cfgvalue) {
|
|||
return subnetmask;
|
||||
}
|
||||
|
||||
function has_peerdns(proto) {
|
||||
switch (proto) {
|
||||
case 'dhcp':
|
||||
case 'qmi':
|
||||
case 'ppp':
|
||||
case 'pppoe':
|
||||
case 'pppoa':
|
||||
case 'pptp':
|
||||
case 'openvpn':
|
||||
case 'sstp':
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
var cbiRichListValue = form.ListValue.extend({
|
||||
renderWidget: function(section_id, option_index, cfgvalue) {
|
||||
var choices = this.transformChoices();
|
||||
|
@ -936,13 +952,13 @@ 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;
|
||||
|
||||
if (protoval != 'static') {
|
||||
if (has_peerdns(protoval)) {
|
||||
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'));
|
||||
if (protoval != 'static')
|
||||
if (has_peerdns(protoval))
|
||||
o.depends('peerdns', '0');
|
||||
o.datatype = 'ipaddr';
|
||||
|
||||
|
|
Loading…
Reference in a new issue