diff options
7 files changed, 68 insertions, 38 deletions
diff --git a/applications/luci-app-unbound/luasrc/controller/unbound.lua b/applications/luci-app-unbound/luasrc/controller/unbound.lua index 296d020cd..b44bf038e 100644 --- a/applications/luci-app-unbound/luasrc/controller/unbound.lua +++ b/applications/luci-app-unbound/luasrc/controller/unbound.lua @@ -8,7 +8,7 @@ module("luci.controller.unbound", package.seeall) function index() local ucl = luci.model.uci.cursor() - local valexp = ucl:get_first("unbound", "unbound", "luci_expanded") + local valexp = ucl:get_first("unbound", "unbound", "extended_luci") local valman = ucl:get_first("unbound", "unbound", "manual_conf") @@ -89,7 +89,7 @@ end function QueryStatistics() local lclhead = "Unbound Control Stats" local lcldata = luci.util.exec("unbound-control -c /var/lib/unbound/unbound.conf stats_noreset") - local lcldesc = luci.i18n.translate("This shows some performances statistics tracked by Unbound.") + local lcldesc = luci.i18n.translate("This shows some performance statistics tracked by Unbound.") luci.template.render("unbound/show-textbox", {heading = lclhead, description = lcldesc, content = lcldata}) end @@ -97,7 +97,7 @@ end function QueryLocalData() local lclhead = "Unbound Control Local Data" local lcldata = luci.util.exec("unbound-control -c /var/lib/unbound/unbound.conf list_local_data") - local lcldesc = luci.i18n.translate("This shows local RR including this router, DHCP assignments, and RFC1918 SOA stubs.") + local lcldesc = luci.i18n.translate("This shows local host records that shortcut recursion.") luci.template.render("unbound/show-textbox", {heading = lclhead, description = lcldesc, content = lcldata}) end @@ -105,31 +105,47 @@ end function QueryLocalZone() local lclhead = "Unbound Control Local Zones" local lcldata = luci.util.exec("unbound-control -c /var/lib/unbound/unbound.conf list_local_zones") - local lcldesc = luci.i18n.translate("This shows local zones including LAN, adblock, forwarding, and RFC1918 in-arpa. ") + local lcldesc = luci.i18n.translate("This shows local zone definitions that affect recursion routing or processing. ") luci.template.render("unbound/show-textbox", {heading = lclhead, description = lcldesc, content = lcldata}) end function ShowUnboundConf() + local unboundfile = "/var/lib/unbound/unbound.conf" local lclhead = "Unbound Conf" - local lcldata = luci.util.exec("cat /var/lib/unbound/unbound.conf") - local lcldesc = luci.i18n.translate("This shows '/var/lib/unbound/unbound.conf' generated by UCI.") + local lcldata = nixio.fs.readfile(unboundfile) + local lcldesc = luci.i18n.translate("This shows configuration generated by UCI:") + lcldesc = lcldesc .. " (" .. unboundfile .. ")" luci.template.render("unbound/show-textbox", {heading = lclhead, description = lcldesc, content = lcldata}) end function ShowDHCPConf() + local dhcpfile = "/var/lib/unbound/unbound_dhcp.conf" local lclhead = "DHCP Conf" - local lcldata = luci.util.exec("cat /var/lib/unbound/unbound_dhcp.conf") - local lcldesc = luci.i18n.translate("This shows '/var/lib/unbound/unbound_dhcp.conf' generated by DHCP hook script(s).") + local lcldata = nixio.fs.readfile(dhcpfile) + local lcldesc = luci.i18n.translate("This shows LAN hosts added by DHCP hook scripts:") + lcldesc = lcldesc .. " (" .. dhcpfile .. ")" luci.template.render("unbound/show-textbox", {heading = lclhead, description = lcldesc, content = lcldata}) end function ShowAdblock() + local adblockfile = "/var/lib/unbound/adb_list.overall" local lclhead = "Adblock Conf" - local lcldata = luci.util.exec("cat /var/lib/unbound/adb_list.overall") - local lcldesc = luci.i18n.translate("This shows '/var/lib/unbound/adb_list.overall' provided by Adblock script(s).") - luci.template.render("unbound/show-textbox", {heading = lclhead, description = lcldesc, content = lcldata}) + local lcldata, lcldesc + + + if nixio.fs.stat(adblockfile).size > 262144 then + lcldesc = luci.i18n.translate("Adblock domain list is too large for LuCI:") + lcldesc = lcldesc .. " (" .. adblockfile .. ")" + luci.template.render("unbound/show-empty", {heading = lclhead, description = lcldesc}) + + else + lcldata = nixio.fs.readfile(adblockfile) + lcldesc = luci.i18n.translate("This shows blocked domains provided by Adblock scripts:") + lcldesc = lcldesc .. " (" .. adblockfile .. ")" + luci.template.render("unbound/show-textbox", {heading = lclhead, description = lcldesc, content = lcldata}) + end end diff --git a/applications/luci-app-unbound/luasrc/model/cbi/unbound/configure.lua b/applications/luci-app-unbound/luasrc/model/cbi/unbound/configure.lua index 61dca765f..cdf7757e3 100644 --- a/applications/luci-app-unbound/luasrc/model/cbi/unbound/configure.lua +++ b/applications/luci-app-unbound/luasrc/model/cbi/unbound/configure.lua @@ -6,7 +6,7 @@ local m1, s1 local ena, mcf, lci, lsv, rlh, rpv, vld, nvd, eds, prt, tlm local ctl, dlk, dom, dty, lfq, wfq, exa, dp6, d64, pfx, qry, qrs -local pro, tgr, rsc, rsn, ag2 +local pro, tgr, rsc, rsn, ag2, stt local ucl = luci.model.uci.cursor() local valman = ucl:get_first("unbound", "unbound", "manual_conf") @@ -34,8 +34,8 @@ mcf = s1:taboption("basic", Flag, "manual_conf", translate("Manual Conf:"), translate("Skip UCI and use /etc/unbound/unbound.conf")) mcf.rmempty = false -lci = s1:taboption("basic", Flag, "luci_expanded", translate("LuCI Expanded:"), - translate("See more detailed tabs for debug")) +lci = s1:taboption("basic", Flag, "extended_luci", translate("Advanced LuCI:"), + translate("See detailed tabs for debug and advanced manual configuration")) lci.rmempty = false @@ -109,9 +109,14 @@ if valman ~= "1" then tlm.rmempty = false --Advanced Tab - ctl = s1:taboption("advanced", Flag, "unbound_control", translate("Unbound Control App:"), - translate("Enable unecrypted localhost access for unbound-control")) + ctl = s1:taboption("advanced", ListValue, "unbound_control", translate("Unbound Control App:"), + translate("Enable access for unbound-control")) ctl.rmempty = false + ctl:value("0", translate("No Remote Control")) + ctl:value("1", translate("Local Host, No Encryption")) + ctl:value("2", translate("Local Host, Encrypted")) + ctl:value("3", translate("Local Subnet, Encrypted")) + ctl:value("4", translate("Local Subnet, Static Encryption")) dlk = s1:taboption("advanced", ListValue, "dhcp_link", translate("DHCP Link:"), translate("Link to supported programs to load DHCP into DNS")) @@ -223,6 +228,10 @@ if valman ~= "1" then ag2:value("24", "24") ag2:value("99", "99 ("..translate("never")..")") + stt = s1:taboption("resource", Flag, "extended_stats", translate("Extended Statistics:"), + translate("Extended statistics are printed from unbound-control")) + stt.rmempty = false + tgr = s1:taboption("resource", Value, "trigger", translate("Trigger Networks:"), translate("Networks that may trigger Unbound to reload (avoid wan6)")) tgr.template = "cbi/network_netlist" diff --git a/applications/luci-app-unbound/luasrc/model/cbi/unbound/extended.lua b/applications/luci-app-unbound/luasrc/model/cbi/unbound/extended.lua index 022571229..67d2ec6c6 100644 --- a/applications/luci-app-unbound/luasrc/model/cbi/unbound/extended.lua +++ b/applications/luci-app-unbound/luasrc/model/cbi/unbound/extended.lua @@ -1,17 +1,16 @@ -- Copyright 2016 Eric Luehrsen <ericluehrsen@hotmail.com> -- Licensed to the public under the Apache License 2.0. -local filename = "/etc/unbound/unbound_ext.conf" local m4, s4, frm +local filename = "/etc/unbound/unbound_ext.conf" +local description = translatef("Here you may edit 'forward:' and 'remote-control:' in an extended 'include:'") +description = description .. " (" .. filename .. ")" m4 = SimpleForm("editing", nil) +m4:append(Template("unbound/css-editing")) m4.submit = translate("Save") m4.reset = false - -s4 = m4:section(SimpleSection, "Unbound Extended Conf", - translatef("This allows you to edit %s which is copied to" - .. " /var/ and 'include:' last for 'forward:' and other clauses", filename)) - +s4 = m4:section(SimpleSection, "Unbound Extended Conf", description) frm = s4:option(TextValue, "data") frm.datatype = "string" frm.rows = 20 @@ -23,7 +22,7 @@ end function frm.write(self, section, data) - return nixio.fs.writefile(filename, data) + return nixio.fs.writefile(filename, luci.util.trim(data:gsub("\r\n", "\n"))) end diff --git a/applications/luci-app-unbound/luasrc/model/cbi/unbound/manual.lua b/applications/luci-app-unbound/luasrc/model/cbi/unbound/manual.lua index 694180d5f..5cfb9c32c 100644 --- a/applications/luci-app-unbound/luasrc/model/cbi/unbound/manual.lua +++ b/applications/luci-app-unbound/luasrc/model/cbi/unbound/manual.lua @@ -1,17 +1,16 @@ -- Copyright 2016 Eric Luehrsen <ericluehrsen@hotmail.com> -- Licensed to the public under the Apache License 2.0. -local filename = "/etc/unbound/unbound.conf" local m2, s2, frm +local filename = "/etc/unbound/unbound.conf" +local description = translatef("Here you may edit raw 'unbound.conf' when you don't use UCI:") +description = description .. " (" .. filename .. ")" m2 = SimpleForm("editing", nil) +m2:append(Template("unbound/css-editing")) m2.submit = translate("Save") m2.reset = false - -s2 = m2:section(SimpleSection, "Unbound Conf", - translatef("This allows you to edit raw %s which is copied to" - .. " /var/ for Unbound's base conf when you don't use UCI", filename)) - +s2 = m2:section(SimpleSection, "Unbound Conf", description) frm = s2:option(TextValue, "data") frm.datatype = "string" frm.rows = 20 @@ -23,7 +22,7 @@ end function frm.write(self, section, data) - return nixio.fs.writefile(filename, data) + return nixio.fs.writefile(filename, luci.util.trim(data:gsub("\r\n", "\n"))) end diff --git a/applications/luci-app-unbound/luasrc/model/cbi/unbound/server.lua b/applications/luci-app-unbound/luasrc/model/cbi/unbound/server.lua index 187046266..d0ac40784 100644 --- a/applications/luci-app-unbound/luasrc/model/cbi/unbound/server.lua +++ b/applications/luci-app-unbound/luasrc/model/cbi/unbound/server.lua @@ -1,17 +1,16 @@ -- Copyright 2016 Eric Luehrsen <ericluehrsen@hotmail.com> -- Licensed to the public under the Apache License 2.0. -local filename = "/etc/unbound/unbound_srv.conf" local m3, s3, frm +local filename = "/etc/unbound/unbound_srv.conf" +local description = translatef("Here you may edit the 'server:' clause in an internal 'include:'") +description = description .. " (" .. filename .. ")" m3 = SimpleForm("editing", nil) +m3:append(Template("unbound/css-editing")) m3.submit = translate("Save") m3.reset = false - -s3 = m3:section(SimpleSection, "Unbound Server Conf", - translatef("This allows you to edit %s which is copied to" - .. " /var/ and 'include:' within the 'server:' section.", filename)) - +s3 = m3:section(SimpleSection, "Unbound Server Conf", description) frm = s3:option(TextValue, "data") frm.datatype = "string" frm.rows = 20 @@ -23,7 +22,7 @@ end function frm.write(self, section, data) - return nixio.fs.writefile(filename, data) + return nixio.fs.writefile(filename, luci.util.trim(data:gsub("\r\n", "\n"))) end diff --git a/applications/luci-app-unbound/luasrc/view/unbound/css-editing.htm b/applications/luci-app-unbound/luasrc/view/unbound/css-editing.htm new file mode 100644 index 000000000..44d09378c --- /dev/null +++ b/applications/luci-app-unbound/luasrc/view/unbound/css-editing.htm @@ -0,0 +1,8 @@ +<style type="text/css"> + textarea + { + background-color: #fffff0; + font-family: monospace; + } +</style> + diff --git a/applications/luci-app-unbound/luasrc/view/unbound/show-textbox.htm b/applications/luci-app-unbound/luasrc/view/unbound/show-textbox.htm index 69c984780..c0a7d133d 100644 --- a/applications/luci-app-unbound/luasrc/view/unbound/show-textbox.htm +++ b/applications/luci-app-unbound/luasrc/view/unbound/show-textbox.htm @@ -2,7 +2,7 @@ <h3><%=heading:pcdata()%></h3> <p><%=description:pcdata()%></p> <div> -<textarea style="width: 100%; height: 480px;" readonly="readonly" wrap="off" rows="<%=content:cmatch("\n")+2%>"><%=content:pcdata()%></textarea> +<textarea style="width: 100%; height: 480px; font-family: monospace;" readonly="readonly" wrap="off" rows="<%=content:cmatch("\n")+2%>"><%=content:pcdata()%></textarea> </div> <%+footer%> |