summaryrefslogtreecommitdiffhomepage
path: root/applications/luci-app-unbound
diff options
context:
space:
mode:
Diffstat (limited to 'applications/luci-app-unbound')
-rw-r--r--applications/luci-app-unbound/luasrc/controller/unbound.lua38
-rw-r--r--applications/luci-app-unbound/luasrc/model/cbi/unbound/configure.lua19
-rw-r--r--applications/luci-app-unbound/luasrc/model/cbi/unbound/extended.lua13
-rw-r--r--applications/luci-app-unbound/luasrc/model/cbi/unbound/manual.lua13
-rw-r--r--applications/luci-app-unbound/luasrc/model/cbi/unbound/server.lua13
-rw-r--r--applications/luci-app-unbound/luasrc/view/unbound/css-editing.htm8
-rw-r--r--applications/luci-app-unbound/luasrc/view/unbound/show-textbox.htm2
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 296d020cdb..b44bf038eb 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 61dca765fa..cdf7757e3a 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 0225712292..67d2ec6c6b 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 694180d5f2..5cfb9c32c1 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 1870462663..d0ac407847 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 0000000000..44d09378c3
--- /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 69c984780b..c0a7d133dc 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%>