diff options
author | Hannu Nyman <hannu.nyman@iki.fi> | 2019-01-02 18:05:22 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-01-02 18:05:22 +0200 |
commit | fde6e216fa35c67de9a22b45a7f3f2f992dbf521 (patch) | |
tree | 6cf1c4eca98ff815117e68e52e090577bb60fa0c /applications | |
parent | 8374aa2bad5dfe8ba0a79be3344fc9cd41ebc511 (diff) | |
parent | ee18024a8bbec56afc77c5d20ebbca1e089da03d (diff) |
Merge pull request #2412 from EricLuehrsen/unbound_cache
luci-app-unbound: protect against printing large cache dump
Diffstat (limited to 'applications')
-rw-r--r-- | applications/luci-app-unbound/luasrc/controller/unbound.lua | 30 |
1 files changed, 23 insertions, 7 deletions
diff --git a/applications/luci-app-unbound/luasrc/controller/unbound.lua b/applications/luci-app-unbound/luasrc/controller/unbound.lua index 5e1962184..32879cb9f 100644 --- a/applications/luci-app-unbound/luasrc/controller/unbound.lua +++ b/applications/luci-app-unbound/luasrc/controller/unbound.lua @@ -53,7 +53,7 @@ function index() call("QueryLocalZone"), _("Local Zones"), 30).leaf = true entry({"admin", "services", "unbound", "status", "dumpcache"}, - call("QueryCacheDump"), _("Cache Dump"), 40).leaf = true + call("QueryDumpCache"), _("DNS Cache"), 40).leaf = true else entry({"admin", "services", "unbound", "status", "statistics"}, call("ShowEmpty"), _("Statistics"), 10).leaf = true @@ -153,17 +153,33 @@ function QueryLocalZone() {heading = "", description = lcldesc, content = lcldata}) end -function QueryCacheDump() + +function QueryDumpCache() + local tp = require "luci.template" + local tr = require "luci.i18n" + local lcldesc local lcldata = luci.util.exec( "unbound-control -c /var/lib/unbound/unbound.conf dump_cache") - local lcldesc = luci.i18n.translate( - "This shows Unbound 'cache_dump'. Useful to check if unbound is actually caching dns entities.") - luci.template.render("unbound/show-textbox", - {heading = "", description = lcldesc, content = lcldata}) + if #lcldata > 262144 then + lcldesc = tr.translate( + "Unbound cache is too large to display in LuCI.") + + tp.render("unbound/show-empty", + {heading = "", description = lcldesc}) + + else + lcldesc = tr.translate( + "This shows 'ubound-control dump_cache' for auditing records including DNSSEC.") + + tp.render("unbound/show-textbox", + {heading = "", description = lcldesc, content = lcldata}) + end + end + function ShowUnboundConf() local unboundfile = "/var/lib/unbound/unbound.conf" local lcldata = nixio.fs.readfile(unboundfile) @@ -196,7 +212,7 @@ function ShowAdblock() if fs.stat(adblockfile).size > 262144 then lcldesc = tr.translate( - "Adblock domain list '" .. adblockfile .. "' is too large for LuCI.") + "Adblock domain list is too large to display in LuCI.") tp.render("unbound/show-empty", {heading = "", description = lcldesc}) |