From e910619bbd67fe259ae5c709bbc78b7fd256fe84 Mon Sep 17 00:00:00 2001 From: Jo-Philipp Wich Date: Sun, 7 Nov 2010 22:38:37 +0000 Subject: [PATCH] modules/admin-full: rework dnsamasq page, get rid of options, add tabs, better help texts --- .../model/cbi/admin_services/dnsmasq.lua | 210 ++++++++++++------ 1 file changed, 146 insertions(+), 64 deletions(-) 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 31fdd00cc..f9411c7a8 100644 --- a/modules/admin-full/luasrc/model/cbi/admin_services/dnsmasq.lua +++ b/modules/admin-full/luasrc/model/cbi/admin_services/dnsmasq.lua @@ -21,103 +21,185 @@ s = m:section(TypedSection, "dnsmasq", translate("Settings")) s.anonymous = true s.addremove = false -s:option(Flag, "domainneeded", +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:option(Flag, "authoritative", +s:taboption("general", Flag, "authoritative", translate("Authoritative"), translate("This is the only DHCP in the local network")) -s:option(Flag, "boguspriv", - translate("Filter private"), - translate("Don't forward reverse lookups for local networks")) - -s:option(Flag, "filterwin2k", - translate("Filter useless"), - translate("filter useless DNS-queries of " .. - "Windows-systems")) - -s:option(Flag, "localise_queries", - translate("Localise queries"), - translate("localises the hostname depending on its subnet")) - -s:option(Value, "local", - translate("Local Server")) -s:option(Value, "domain", - translate("Local Domain")) - -s:option(Flag, "expandhosts", - translate("Expand Hosts"), - translate("adds domain names to hostentries in the resolv file")) - -s:option(Flag, "nonegcache", - translate("don't cache unknown"), - translate("prevents caching of negative DNS-" .. - "replies")) - -s:option(Flag, "readethers", +s:taboption("files", Flag, "readethers", translate("Use /etc/ethers"), translate("Read /etc/ethers to configure the DHCP-Server")) -s:option(Value, "leasefile", +s:taboption("files", Value, "leasefile", translate("Leasefile"), translate("file where given DHCP-leases will be stored")) -s:option(Value, "resolvfile", - translate("Resolvfile"), +s:taboption("files", Flag, "noresolv", + translate("Ignore resolve file")).optional = true + +rf = s:taboption("files", Value, "resolvfile", + translate("Resolve file"), translate("local DNS file")) -s:option(Flag, "nohosts", - translate("Ignore /etc/hosts")).optional = true +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:option(Flag, "strictorder", +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-Server will be queried in the " .. + translate("DNS servers will be queried in the " .. "order of the resolvfile")).optional = true -s:option(Flag, "logqueries", - translate("Log queries")).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")) + + +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 -s:option(Flag, "noresolv", - translate("Ignore resolve file")).optional = true -s:option(Value, "dnsforwardmax", - translate("concurrent queries")).optional = true +cq = s:taboption("advanced", Value, "dnsforwardmax", + translate("Max. concurrent queries"), + translate("Maximum allowed number of concurrent DNS queries")) -s:option(Value, "port", - translate("DNS-Port")).optional = true +cq.optional = true +cq.datatype = "uinteger" +cq.placeholder = 150 -s:option(Value, "ednspacket_max", - translate("max. EDNS0 paket size")).optional = true -s:option(Value, "dhcpleasemax", - translate("max. DHCP-Leases")).optional = true +s:taboption("tftp", Flag, "enable_tftp", + translate("Enable TFTP server")).optional = true -s:option(DynamicList, "addnhosts", - translate("additional hostfile")).optional = true +tr = s:taboption("tftp", Value, "tftp_root", + translate("TFTP server root"), + translate("Root directory for files served via TFTP")) -s:option(Value, "queryport", - translate("query port")).optional = true +tr.optional = true +tr:depends("enable_tftp", "1") +tr.placeholder = "/" -s:option(Flag, "enable_tftp", - translate("Enable TFTP-Server")).optional = true -s:option(Value, "tftp_root", - translate("TFTP-Server Root")).optional = true +db = s:taboption("tftp", Value, "dhcp_boot", + translate("Network boot image"), + translate("Filename of the boot image advertised to clients")) -s:option(Value, "dhcp_boot", - translate("Network Boot Image")).optional = true +db.optional = true +db:depends("enable_tftp", "1") +db.placeholder = "pxelinux.0" -s:option(DynamicList, "server", translate("DNS forward"), - translate("List of DNS " .. - "servers to forward requests to")).optional = true return m -- 2.25.1