X-Git-Url: https://git.archive.openwrt.org/?p=project%2Fluci.git;a=blobdiff_plain;f=modules%2Fadmin-full%2Fluasrc%2Fmodel%2Fcbi%2Fadmin_services%2Fdnsmasq.lua;h=b9c6f07b353b4c0f866f5cfc2c2f1c39cb8e3ea2;hp=04ec1e15c44319ad61a2791f9d8b9a5eba7765a4;hb=a3850aa3c7ffbee487cfc9a7903b0561e532f335;hpb=f68d31c8f0526ea879c71a5e80f072b7d9d7e0aa diff --git a/modules/admin-full/luasrc/model/cbi/admin_services/dnsmasq.lua b/modules/admin-full/luasrc/model/cbi/admin_services/dnsmasq.lua index 04ec1e15c..b9c6f07b3 100644 --- a/modules/admin-full/luasrc/model/cbi/admin_services/dnsmasq.lua +++ b/modules/admin-full/luasrc/model/cbi/admin_services/dnsmasq.lua @@ -11,35 +11,197 @@ You may obtain a copy of the License at $Id$ ]]-- -m = Map("dhcp", "Dnsmasq") +m = Map("dhcp", "Dnsmasq", + translate("Dnsmasq is a combined DHCP-Server and DNS-" .. + "Forwarder for NAT " .. + "firewalls")) -s = m:section(TypedSection, "dnsmasq", translate("settings")) +s = m:section(TypedSection, "dnsmasq", translate("Settings")) s.anonymous = true +s.addremove = false -s:option(Flag, "domainneeded") -s:option(Flag, "authoritative") -s:option(Flag, "boguspriv") -s:option(Flag, "filterwin2k") -s:option(Flag, "localise_queries") -s:option(Value, "local") -s:option(Value, "domain") -s:option(Flag, "expandhosts") -s:option(Flag, "nonegcache") -s:option(Flag, "readethers") -s:option(Value, "leasefile") -s:option(Value, "resolvfile") -s:option(Flag, "nohosts").optional = true -s:option(Flag, "strictorder").optional = true -s:option(Flag, "logqueries").optional = true -s:option(Flag, "noresolv").optional = true -s:option(Value, "dnsforwardmax").optional = true -s:option(Value, "port").optional = true -s:option(Value, "ednspacket_max").optional = true -s:option(Value, "dhcpleasemax").optional = true -s:option(Value, "addnhosts").optional = true -s:option(Value, "queryport").optional = true -s:option(Flag, "enable_tftp").optional = true -s:option(Value, "tftp_root").optional = true -s:option(Value, "dhcp_boot").optional = true - -return m \ No newline at end of file +s:tab("general", translate("General Settings")) +s:tab("files", translate("Resolv and Hosts Files")) +s:tab("tftp", translate("TFTP Settings")) +s:tab("advanced", translate("Advanced Settings")) + +s:taboption("general", Flag, "domainneeded", + translate("Domain required"), + translate("Don't forward DNS-Requests without " .. + "DNS-Name")) + +s:taboption("general", Flag, "authoritative", + translate("Authoritative"), + translate("This is the only DHCP in the local network")) + + +s:taboption("files", Flag, "readethers", + translate("Use /etc/ethers"), + translate("Read /etc/ethers to configure the DHCP-Server")) + +s:taboption("files", Value, "leasefile", + translate("Leasefile"), + translate("file where given DHCP-leases will be stored")) + +s:taboption("files", Flag, "noresolv", + translate("Ignore resolve file")).optional = true + +rf = s:taboption("files", Value, "resolvfile", + translate("Resolve file"), + translate("local DNS file")) + +rf:depends("noresolv", "") +rf.optional = true + + +s:taboption("files", Flag, "nohosts", + translate("Ignore Hosts files")).optional = true + +hf = s:taboption("files", DynamicList, "addnhosts", + translate("Additional Hosts files")) + +hf:depends("nohosts", "") +hf.optional = true + + +s:taboption("advanced", Flag, "boguspriv", + translate("Filter private"), + translate("Do not forward reverse lookups for local networks")) + +s:taboption("advanced", Flag, "filterwin2k", + translate("Filter useless"), + translate("Do not forward requests that cannot be answered by public name servers")) + +s:taboption("advanced", Flag, "localise_queries", + translate("Localise queries"), + translate("Localise hostname depending on the requesting subnet if multiple IPs are available")) + +s:taboption("general", Value, "local", + translate("Local server"), + translate("Local domain specification. Names matching this domain are never forwared and resolved from DHCP or hosts files only")) + +s:taboption("general", Value, "domain", + translate("Local domain"), + translate("Local domain suffix appended to DHCP names and hosts file entries")) + +s:taboption("advanced", Flag, "expandhosts", + translate("Expand hosts"), + translate("Add local domain suffix to names served from hosts files")) + +s:taboption("advanced", Flag, "nonegcache", + translate("No negative cache"), + translate("Do not cache negative replies, e.g. for not existing domains")) + +s:taboption("advanced", Flag, "strictorder", + translate("Strict order"), + translate("DNS servers will be queried in the " .. + "order of the resolvfile")).optional = true + +s:taboption("general", Flag, "logqueries", + translate("Log queries"), + translate("Write received DNS requests to syslog")).optional = true + +df = s:taboption("general", DynamicList, "server", translate("DNS forwardings"), + translate("List of DNS " .. + "servers to forward requests to")) + +df.optional = true +df.placeholder = "/example.org/10.1.2.3" + + +rp = s:taboption("general", Flag, "rebind_protection", + translate("Rebind protection"), + translate("Discard upstream RFC1918 responses")) + +rp.rmempty = false + + +rl = s:taboption("general", Flag, "rebind_localhost", + translate("Allow localhost"), + translate("Allow upstream responses in the 127.0.0.0/8 range, e.g. for RBL services")) + +rl:depends("rebind_protection", "1") + + +rd = s:taboption("general", DynamicList, "rebind_domain", + translate("Domain whitelist"), + translate("List of domains to allow RFC1918 responses for")) + +rd:depends("rebind_protection", "1") +rd.datatype = "host" +rd.placeholder = "ihost.netflix.com" + + +pt = s:taboption("advanced", Value, "port", + translate("DNS server port"), + translate("Listening port for inbound DNS queries")) + +pt.optional = true +pt.datatype = "port" +pt.placeholder = 53 + + +qp = s:taboption("advanced", Value, "queryport", + translate("DNS query port"), + translate("Fixed source port for outbound DNS queries")) + +qp.optional = true +qp.datatype = "port" +qp.placeholder = translate("any") + + +lm = s:taboption("advanced", Value, "dhcpleasemax", + translate("Max. DHCP leases"), + translate("Maximum allowed number of active DHCP leases")) + +lm.optional = true +lm.datatype = "uinteger" +lm.placeholder = translate("unlimited") + + +em = s:taboption("advanced", Value, "ednspacket_max", + translate("Max. EDNS0 paket size"), + translate("Maximum allowed size of EDNS.0 UDP packets")) + +em.optional = true +em.datatype = "uinteger" +em.placeholder = 1280 + + +cq = s:taboption("advanced", Value, "dnsforwardmax", + translate("Max. concurrent queries"), + translate("Maximum allowed number of concurrent DNS queries")) + +cq.optional = true +cq.datatype = "uinteger" +cq.placeholder = 150 + + +s:taboption("tftp", Flag, "enable_tftp", + translate("Enable TFTP server")).optional = true + +tr = s:taboption("tftp", Value, "tftp_root", + translate("TFTP server root"), + translate("Root directory for files served via TFTP")) + +tr.optional = true +tr:depends("enable_tftp", "1") +tr.placeholder = "/" + + +db = s:taboption("tftp", Value, "dhcp_boot", + translate("Network boot image"), + translate("Filename of the boot image advertised to clients")) + +db.optional = true +db:depends("enable_tftp", "1") +db.placeholder = "pxelinux.0" + + +return m