summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--protocols/core/luasrc/model/cbi/admin_network/proto_dhcp.lua30
-rw-r--r--protocols/core/luasrc/model/cbi/admin_network/proto_static.lua10
2 files changed, 37 insertions, 3 deletions
diff --git a/protocols/core/luasrc/model/cbi/admin_network/proto_dhcp.lua b/protocols/core/luasrc/model/cbi/admin_network/proto_dhcp.lua
index 566ea2331..806d5cd31 100644
--- a/protocols/core/luasrc/model/cbi/admin_network/proto_dhcp.lua
+++ b/protocols/core/luasrc/model/cbi/admin_network/proto_dhcp.lua
@@ -14,7 +14,7 @@ local map, section, net = ...
local ifc = net:get_interface()
local hostname, accept_ra, send_rs
-local bcast, no_gw, metric, clientid, vendorclass
+local bcast, no_gw, no_dns, dns, metric, clientid, vendorclass
hostname = section:taboption("general", Value, "hostname",
@@ -62,6 +62,34 @@ function no_gw.write(self, section, value)
end
+no_dns = section:taboption("advanced", Flag, "_no_dns",
+ translate("Use DNS servers advertised by peer"),
+ translate("If unchecked, the advertised DNS server addresses are ignored"))
+
+no_dns.default = no_dns.enabled
+
+function no_dns.cfgvalue(self, section)
+ local addr
+ for addr in luci.util.imatch(m:get(section, "dns")) do
+ return self.disabled
+ end
+ return self.enabled
+end
+
+function no_dns.remove(self, section)
+ return m:del(section, "dns")
+end
+
+function no_dns.write() end
+
+
+dns = section:taboption("advanced", DynamicList, "dns",
+ translate("Use custom DNS servers"))
+
+dns:depends("_no_dns", "")
+dns.datatype = "ipaddr"
+
+
metric = section:taboption("advanced", Value, "metric",
translate("Use gateway metric"))
diff --git a/protocols/core/luasrc/model/cbi/admin_network/proto_static.lua b/protocols/core/luasrc/model/cbi/admin_network/proto_static.lua
index 8ae9b7eab..3c9b14b2b 100644
--- a/protocols/core/luasrc/model/cbi/admin_network/proto_static.lua
+++ b/protocols/core/luasrc/model/cbi/admin_network/proto_static.lua
@@ -13,7 +13,7 @@ You may obtain a copy of the License at
local map, section, net = ...
local ifc = net:get_interface()
-local ipaddr, netmask, gateway, broadcast, accept_ra, send_rs, ip6addr, ip6gw
+local ipaddr, netmask, gateway, broadcast, dns, accept_ra, send_rs, ip6addr, ip6gw
local macaddr, mtu, metric
@@ -38,6 +38,12 @@ broadcast = section:taboption("general", Value, "broadcast", translate("IPv4 bro
broadcast.datatype = "ip4addr"
+dns = section:taboption("general", DynamicList, "dns",
+ translate("Use custom DNS servers"))
+
+dns.datatype = "ipaddr"
+
+
if luci.model.network:has_ipv6() then
accept_ra = s:taboption("general", Flag, "accept_ra", translate("Accept router advertisements"))
@@ -57,7 +63,7 @@ if luci.model.network:has_ipv6() then
ip6gw = section:taboption("general", Value, "ip6gw", translate("IPv6 gateway"))
ip6gw.datatype = "ip6addr"
ip6gw:depends("accept_ra", "")
-
+
end