luci-app-privoxy: change to tabbed display
- changed to tabbed display - modified version detection - adaption to new function version_compare() in ipkg.lua - adaption to fixed Flag.parse() in cbi.lua - add support new option "system.boot_delay" - also fix #763 Signed-off-by: Christian Schoenebeck <christian.schoenebeck@gmail.com>
This commit is contained in:
parent
6be690473b
commit
9549cb6ca2
3 changed files with 263 additions and 228 deletions
|
@ -10,7 +10,7 @@ PKG_NAME:=luci-app-privoxy
|
||||||
|
|
||||||
# Version == major.minor.patch
|
# Version == major.minor.patch
|
||||||
# increase "minor" on new functionality and "patch" on patches/optimization
|
# increase "minor" on new functionality and "patch" on patches/optimization
|
||||||
PKG_VERSION:=1.0.5
|
PKG_VERSION:=1.0.6
|
||||||
|
|
||||||
# Release == build
|
# Release == build
|
||||||
# increase on changes of translation files
|
# increase on changes of translation files
|
||||||
|
|
|
@ -1,16 +1,24 @@
|
||||||
-- Copyright 2014 Christian Schoenebeck <christian dot schoenebeck at gmail dot com>
|
-- Copyright 2014-2016 Christian Schoenebeck <christian dot schoenebeck at gmail dot com>
|
||||||
-- Licensed under the Apache License, Version 2.0
|
-- Licensed under the Apache License, Version 2.0
|
||||||
|
|
||||||
module("luci.controller.privoxy", package.seeall)
|
module("luci.controller.privoxy", package.seeall)
|
||||||
|
|
||||||
local NX = require "nixio"
|
local NX = require "nixio"
|
||||||
local NXFS = require "nixio.fs"
|
local NXFS = require "nixio.fs"
|
||||||
|
local DISP = require "luci.dispatcher"
|
||||||
local HTTP = require "luci.http"
|
local HTTP = require "luci.http"
|
||||||
|
local I18N = require "luci.i18n" -- not globally avalible here
|
||||||
|
local IPKG = require "luci.model.ipkg"
|
||||||
local UCI = require "luci.model.uci"
|
local UCI = require "luci.model.uci"
|
||||||
local UTIL = require "luci.util"
|
local UTIL = require "luci.util"
|
||||||
local SYS = require "luci.sys"
|
local SYS = require "luci.sys"
|
||||||
|
|
||||||
PRIVOXY_MIN = "3.0.22-0" -- minimum version of service required
|
local srv_name = "privoxy"
|
||||||
|
local srv_ver_min = "3.0.23" -- minimum version of service required
|
||||||
|
local srv_ver_cmd = [[/usr/sbin/privoxy --version | awk {'print $3'}]]
|
||||||
|
local app_name = "luci-app-privoxy"
|
||||||
|
local app_title = "Privoxy WEB proxy"
|
||||||
|
local app_version = "1.0.6-1"
|
||||||
|
|
||||||
function index()
|
function index()
|
||||||
entry( {"admin", "services", "privoxy"}, cbi("privoxy"), _("Privoxy WEB proxy"), 59)
|
entry( {"admin", "services", "privoxy"}, cbi("privoxy"), _("Privoxy WEB proxy"), 59)
|
||||||
|
@ -19,6 +27,73 @@ function index()
|
||||||
entry( {"admin", "services", "privoxy", "status"}, call("get_pid") ).leaf = true
|
entry( {"admin", "services", "privoxy", "status"}, call("get_pid") ).leaf = true
|
||||||
end
|
end
|
||||||
|
|
||||||
|
-- Application specific information functions
|
||||||
|
function app_description()
|
||||||
|
return I18N.translate("Privoxy is a non-caching web proxy with advanced filtering "
|
||||||
|
.. "capabilities for enhancing privacy, modifying web page data and HTTP headers, "
|
||||||
|
.. "controlling access, and removing ads and other obnoxious Internet junk.")
|
||||||
|
.. [[<br /><strong>]]
|
||||||
|
.. I18N.translate("For help use link at the relevant option")
|
||||||
|
.. [[</strong>]]
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Standardized application/service functions
|
||||||
|
function app_title_main()
|
||||||
|
return [[<a href="javascript:alert(']]
|
||||||
|
.. I18N.translate("Version Information")
|
||||||
|
.. [[\n\n]] .. app_name
|
||||||
|
.. [[\n\t]] .. I18N.translate("Version") .. [[:\t]] .. app_version
|
||||||
|
.. [[\n\n]] .. srv_name .. [[ ]] .. I18N.translate("required") .. [[:]]
|
||||||
|
.. [[\n\t]] .. I18N.translate("Version") .. [[:\t]]
|
||||||
|
.. srv_ver_min .. [[ ]] .. I18N.translate("or higher")
|
||||||
|
.. [[\n\n]] .. srv_name .. [[ ]] .. I18N.translate("installed") .. [[:]]
|
||||||
|
.. [[\n\t]] .. I18N.translate("Version") .. [[:\t]]
|
||||||
|
.. (service_version() or I18N.translate("NOT installed"))
|
||||||
|
.. [[\n\n]]
|
||||||
|
.. [[')">]]
|
||||||
|
.. I18N.translate(app_title)
|
||||||
|
.. [[</a>]]
|
||||||
|
end
|
||||||
|
function service_version()
|
||||||
|
local ver = nil
|
||||||
|
IPKG.list_installed(srv_name, function(n, v, d)
|
||||||
|
if v and (#v > 0) then ver = v end
|
||||||
|
end
|
||||||
|
)
|
||||||
|
if not ver or (#ver == 0) then
|
||||||
|
ver = UTIL.exec(srv_ver_cmd)
|
||||||
|
if #ver == 0 then ver = nil end
|
||||||
|
end
|
||||||
|
return ver
|
||||||
|
end
|
||||||
|
function service_ok()
|
||||||
|
return IPKG.compare_versions((service_version() or "0"), ">=", srv_ver_min)
|
||||||
|
end
|
||||||
|
function service_update()
|
||||||
|
local url = DISP.build_url("admin", "system", "packages")
|
||||||
|
if not service_version() then
|
||||||
|
return [[<h3><strong><br /><font color="red"> ]]
|
||||||
|
.. I18N.translate("Software package '%s' is not installed." % srv_name)
|
||||||
|
.. [[</font><br /><br /> ]]
|
||||||
|
.. I18N.translate("required") .. [[: ]] .. srv_name .. [[ ]] .. srv_ver_min .. " " .. I18N.translate("or higher")
|
||||||
|
.. [[<br /><br /> ]]
|
||||||
|
.. [[<a href="]] .. url ..[[">]]
|
||||||
|
.. I18N.translate("Please install current version !")
|
||||||
|
.. [[</a><br /> </strong></h3>]]
|
||||||
|
else
|
||||||
|
return [[<h3><strong><br /><br /><font color="red"> ]]
|
||||||
|
.. I18N.translate("Software package '%s' is outdated." % srv_name)
|
||||||
|
.. [[</font><br /><br /> ]]
|
||||||
|
.. I18N.translate("installed") .. ": " .. service_version()
|
||||||
|
.. [[<br /><br /> ]]
|
||||||
|
.. I18N.translate("required") .. ": " .. srv_ver_min .. " " .. I18N.translate("or higher")
|
||||||
|
.. [[<br /><br /> ]]
|
||||||
|
.. [[<a href="]] .. url ..[[">]]
|
||||||
|
.. I18N.translate("Please update to the current version!")
|
||||||
|
.. [[</a><br /><br /> </strong></h3>]]
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
-- called by XHR.get from detail_logview.htm
|
-- called by XHR.get from detail_logview.htm
|
||||||
function logread()
|
function logread()
|
||||||
-- read application settings
|
-- read application settings
|
||||||
|
@ -27,8 +102,7 @@ function logread()
|
||||||
local logfile = uci:get("privoxy", "privoxy", "logfile") or "privoxy.log"
|
local logfile = uci:get("privoxy", "privoxy", "logfile") or "privoxy.log"
|
||||||
uci:unload("privoxy")
|
uci:unload("privoxy")
|
||||||
|
|
||||||
local lfile=logdir .. "/" .. logfile
|
local ldata=NXFS.readfile(logdir .. "/" .. logfile)
|
||||||
local ldata=NXFS.readfile(lfile)
|
|
||||||
if not ldata or #ldata == 0 then
|
if not ldata or #ldata == 0 then
|
||||||
ldata="_nodata_"
|
ldata="_nodata_"
|
||||||
end
|
end
|
||||||
|
@ -70,76 +144,98 @@ function get_pid(from_lua)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
-- compare versions using "<=" "<" ">" ">=" "=" "<<" ">>"
|
-- replacement of build-in parse of UCI option
|
||||||
function ipkg_ver_compare(ver1, comp, ver2)
|
-- modified AbstractValue.parse(self, section, novld) from cbi.lua
|
||||||
if not ver1 or not ver2
|
-- validate is called if rmempty/optional true or false
|
||||||
or not comp or not (#comp > 0) then return nil end
|
-- write is called if rmempty/optional true or false
|
||||||
-- correct compare string
|
function value_parse(self, section, novld)
|
||||||
if comp == "<>" or comp == "><" or comp == "!=" or comp == "~=" then comp = "~="
|
local fvalue = self:formvalue(section)
|
||||||
elseif comp == "<=" or comp == "<" or comp == "=<" then comp = "<="
|
local fexist = ( fvalue and (#fvalue > 0) ) -- not "nil" and "not empty"
|
||||||
elseif comp == ">=" or comp == ">" or comp == "=>" then comp = ">="
|
local cvalue = self:cfgvalue(section)
|
||||||
elseif comp == "=" or comp == "==" then comp = "=="
|
local rm_opt = ( self.rmempty or self.optional )
|
||||||
elseif comp == "<<" then comp = "<"
|
local eq_cfg -- flag: equal cfgvalue
|
||||||
elseif comp == ">>" then comp = ">"
|
|
||||||
else return nil end
|
|
||||||
|
|
||||||
local av1 = UTIL.split(ver1, "[%.%-]", nil, true)
|
-- If favlue and cvalue are both tables and have the same content
|
||||||
local av2 = UTIL.split(ver2, "[%.%-]", nil, true)
|
-- make them identical
|
||||||
|
if type(fvalue) == "table" and type(cvalue) == "table" then
|
||||||
for i = 1, math.max(table.getn(av1),table.getn(av2)), 1 do
|
eq_cfg = (#fvalue == #cvalue)
|
||||||
local s1 = av1[i] or ""
|
if eq_cfg then
|
||||||
local s2 = av2[i] or ""
|
for i=1, #fvalue do
|
||||||
|
if cvalue[i] ~= fvalue[i] then
|
||||||
-- first "not equal" found return true
|
eq_cfg = false
|
||||||
if comp == "~=" and (s1 ~= s2) then return true end
|
end
|
||||||
-- first "lower" found return true
|
|
||||||
if (comp == "<" or comp == "<=") and (s1 < s2) then return true end
|
|
||||||
-- first "greater" found return true
|
|
||||||
if (comp == ">" or comp == ">=") and (s1 > s2) then return true end
|
|
||||||
-- not equal then return false
|
|
||||||
if (s1 ~= s2) then return false end
|
|
||||||
end
|
|
||||||
|
|
||||||
-- all equal and not compare greater or lower then true
|
|
||||||
return not (comp == "<" or comp == ">")
|
|
||||||
end
|
|
||||||
|
|
||||||
-- read version information for given package if installed
|
|
||||||
function ipkg_ver_installed(pkg)
|
|
||||||
local version = nil
|
|
||||||
local control = io.open("/usr/lib/opkg/info/%s.control" % pkg, "r")
|
|
||||||
if control then
|
|
||||||
local ln
|
|
||||||
repeat
|
|
||||||
ln = control:read("*l")
|
|
||||||
if ln and ln:match("^Version: ") then
|
|
||||||
version = ln:gsub("^Version: ", "")
|
|
||||||
break
|
|
||||||
end
|
end
|
||||||
until not ln
|
|
||||||
control:close()
|
|
||||||
end
|
|
||||||
return version
|
|
||||||
end
|
|
||||||
|
|
||||||
-- replacement of build-in Flag.parse of cbi.lua
|
|
||||||
-- modified to mark section as changed if value changes
|
|
||||||
-- current parse did not do this, but it is done AbstaractValue.parse()
|
|
||||||
function flag_parse(self, section)
|
|
||||||
local fexists = self.map:formvalue(
|
|
||||||
luci.cbi.FEXIST_PREFIX .. self.config .. "." .. section .. "." .. self.option)
|
|
||||||
|
|
||||||
if fexists then
|
|
||||||
local fvalue = self:formvalue(section) and self.enabled or self.disabled
|
|
||||||
local cvalue = self:cfgvalue(section)
|
|
||||||
if fvalue ~= self.default or (not self.optional and not self.rmempty) then
|
|
||||||
self:write(section, fvalue)
|
|
||||||
else
|
|
||||||
self:remove(section)
|
|
||||||
end
|
end
|
||||||
if (fvalue ~= cvalue) then self.section.changed = true end
|
if eq_cfg then
|
||||||
else
|
fvalue = cvalue
|
||||||
self:remove(section)
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
-- removed parameter "section" from function call because used/accepted nowhere
|
||||||
|
-- also removed call to function "transfer"
|
||||||
|
local vvalue, errtxt = self:validate(fvalue)
|
||||||
|
|
||||||
|
-- error handling; validate return "nil"
|
||||||
|
if not vvalue then
|
||||||
|
if novld then -- and "novld" set
|
||||||
|
return -- then exit without raising an error
|
||||||
|
end
|
||||||
|
|
||||||
|
if fexist then -- and there is a formvalue
|
||||||
|
self:add_error(section, "invalid", errtxt or self.title .. ": invalid")
|
||||||
|
return -- so data are invalid
|
||||||
|
elseif not rm_opt then -- and empty formvalue but NOT (rmempty or optional) set
|
||||||
|
self:add_error(section, "missing", errtxt or self.title .. ": missing")
|
||||||
|
return -- so data is missing
|
||||||
|
elseif errtxt then
|
||||||
|
self:add_error(section, "invalid", errtxt)
|
||||||
|
return
|
||||||
|
end
|
||||||
|
-- error ("\n option: " .. self.option ..
|
||||||
|
-- "\n fvalue: " .. tostring(fvalue) ..
|
||||||
|
-- "\n fexist: " .. tostring(fexist) ..
|
||||||
|
-- "\n cvalue: " .. tostring(cvalue) ..
|
||||||
|
-- "\n vvalue: " .. tostring(vvalue) ..
|
||||||
|
-- "\n vexist: " .. tostring(vexist) ..
|
||||||
|
-- "\n rm_opt: " .. tostring(rm_opt) ..
|
||||||
|
-- "\n eq_cfg: " .. tostring(eq_cfg) ..
|
||||||
|
-- "\n eq_def: " .. tostring(eq_def) ..
|
||||||
|
-- "\n novld : " .. tostring(novld) ..
|
||||||
|
-- "\n errtxt: " .. tostring(errtxt) )
|
||||||
|
end
|
||||||
|
|
||||||
|
-- lets continue with value returned from validate
|
||||||
|
eq_cfg = ( vvalue == cvalue ) -- update equal_config flag
|
||||||
|
local vexist = ( vvalue and (#vvalue > 0) ) and true or false -- not "nil" and "not empty"
|
||||||
|
local eq_def = ( vvalue == self.default ) -- equal_default flag
|
||||||
|
|
||||||
|
-- (rmempty or optional) and (no data or equal_default)
|
||||||
|
if rm_opt and (not vexist or eq_def) then
|
||||||
|
if self:remove(section) then -- remove data from UCI
|
||||||
|
self.section.changed = true -- and push events
|
||||||
|
end
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
-- not forcewrite and no changes, so nothing to write
|
||||||
|
if not self.forcewrite and eq_cfg then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
-- we should have a valid value here
|
||||||
|
assert (vvalue, "\n option: " .. self.option ..
|
||||||
|
"\n fvalue: " .. tostring(fvalue) ..
|
||||||
|
"\n fexist: " .. tostring(fexist) ..
|
||||||
|
"\n cvalue: " .. tostring(cvalue) ..
|
||||||
|
"\n vvalue: " .. tostring(vvalue) ..
|
||||||
|
"\n vexist: " .. tostring(vexist) ..
|
||||||
|
"\n rm_opt: " .. tostring(rm_opt) ..
|
||||||
|
"\n eq_cfg: " .. tostring(eq_cfg) ..
|
||||||
|
"\n eq_def: " .. tostring(eq_def) ..
|
||||||
|
"\n errtxt: " .. tostring(errtxt) )
|
||||||
|
|
||||||
|
-- write data to UCI; raise event only on changes
|
||||||
|
if self:write(section, vvalue) and not eq_cfg then
|
||||||
self.section.changed = true
|
self.section.changed = true
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -8,64 +8,35 @@ local DISP = require "luci.dispatcher"
|
||||||
local DTYP = require "luci.cbi.datatypes"
|
local DTYP = require "luci.cbi.datatypes"
|
||||||
local CTRL = require "luci.controller.privoxy" -- this application's controller
|
local CTRL = require "luci.controller.privoxy" -- this application's controller
|
||||||
|
|
||||||
-- Bootstrap theme needs 2 or 3 additional linefeeds for tab description for better optic
|
|
||||||
local HELP = [[<a href="http://www.privoxy.org/user-manual/config.html#%s" target="_blank">%s</a>]]
|
local HELP = [[<a href="http://www.privoxy.org/user-manual/config.html#%s" target="_blank">%s</a>]]
|
||||||
|
|
||||||
local VERINST = CTRL.ipkg_ver_installed("privoxy")
|
|
||||||
local VEROK = CTRL.ipkg_ver_compare(VERINST,">=",CTRL.PRIVOXY_MIN)
|
|
||||||
|
|
||||||
local TITLE = [[<a href="javascript:alert(']]
|
|
||||||
.. translate("Version Information")
|
|
||||||
.. [[\n\nluci-app-privoxy]]
|
|
||||||
.. [[\n\t]] .. translate("Version") .. [[:\t]]
|
|
||||||
.. CTRL.ipkg_ver_installed("luci-app-privoxy")
|
|
||||||
.. [[\n\nprivoxy ]] .. translate("required") .. [[:]]
|
|
||||||
.. [[\n\t]] .. translate("Version") .. [[:\t]] .. CTRL.PRIVOXY_MIN .. [[ ]] .. translate("or higher")
|
|
||||||
.. [[\n\nprivoxy ]] .. translate("installed") .. [[:]]
|
|
||||||
.. [[\n\t]] .. translate("Version") .. [[:\t]] .. VERINST
|
|
||||||
.. [[\n\n]]
|
|
||||||
.. [[')">]]
|
|
||||||
.. translate("Privoxy WEB proxy")
|
|
||||||
.. [[</a>]]
|
|
||||||
|
|
||||||
local DESC = translate("Privoxy is a non-caching web proxy with advanced filtering "
|
|
||||||
.. "capabilities for enhancing privacy, modifying web page data and HTTP headers, "
|
|
||||||
.. "controlling access, and removing ads and other obnoxious Internet junk.")
|
|
||||||
.. [[<br /><strong>]]
|
|
||||||
.. translate("For help use link at the relevant option")
|
|
||||||
.. [[</strong>]]
|
|
||||||
|
|
||||||
-- Error handling if wrong privoxy version installed -- ########################
|
-- Error handling if wrong privoxy version installed -- ########################
|
||||||
if not nixio.fs.access("/etc/config/privoxy") or not VEROK then
|
if not CTRL.service_ok() then
|
||||||
local f = SimpleForm("_no_config")
|
local f = SimpleForm("_sf")
|
||||||
f.title = TITLE
|
f.title = CTRL.app_title_main()
|
||||||
f.description = DESC
|
f.description = CTRL.app_description()
|
||||||
f.embedded = true
|
f.embedded = true
|
||||||
f.submit = false
|
f.submit = false
|
||||||
f.reset = false
|
f.reset = false
|
||||||
|
|
||||||
local s = f:section(SimpleSection)
|
local s = f:section(SimpleSection)
|
||||||
s.title = [[<font color="red">]] .. [[<strong>]]
|
local v = s:option(DummyValue, "_dv")
|
||||||
.. translate("Software update required")
|
|
||||||
.. [[</strong>]] .. [[</font>]]
|
|
||||||
|
|
||||||
local v = s:option(DummyValue, "_update_needed")
|
|
||||||
v.titleref = DISP.build_url("admin", "system", "packages")
|
v.titleref = DISP.build_url("admin", "system", "packages")
|
||||||
v.rawhtml = true
|
v.rawhtml = true
|
||||||
v.value = [[<h3><strong><br /><br /> ]]
|
v.value = CTRL.service_update()
|
||||||
.. translate("The currently installed 'privoxy' package is not supported by LuCI application.")
|
|
||||||
.. [[<br /><br /> ]]
|
|
||||||
.. translate("required") .. ": " .. CTRL.PRIVOXY_MIN .. " *** ".. translate("installed") .. ": " .. VERINST
|
|
||||||
.. [[<br /><br /> ]]
|
|
||||||
.. translate("Please update to the current version!")
|
|
||||||
.. [[<br /><br /></strong></h3>]]
|
|
||||||
return f
|
return f
|
||||||
end
|
end
|
||||||
|
|
||||||
|
-- #################################################################################################
|
||||||
|
-- Error handling if no config, create an empty one -- #########################
|
||||||
|
if not NXFS.access("/etc/config/privoxy") then
|
||||||
|
NXFS.writefile("/etc/config/privoxy", "")
|
||||||
|
end
|
||||||
|
|
||||||
-- cbi-map -- ##################################################################
|
-- cbi-map -- ##################################################################
|
||||||
local m = Map("privoxy")
|
local m = Map("privoxy")
|
||||||
m.title = TITLE
|
m.title = CTRL.app_title_main()
|
||||||
m.description = DESC
|
m.description = CTRL.app_description()
|
||||||
function m.commit_handler(self)
|
function m.commit_handler(self)
|
||||||
if self.changed then -- changes ?
|
if self.changed then -- changes ?
|
||||||
os.execute("/etc/init.d/privoxy reload &") -- reload configuration
|
os.execute("/etc/init.d/privoxy reload &") -- reload configuration
|
||||||
|
@ -74,14 +45,30 @@ end
|
||||||
|
|
||||||
-- cbi-section -- ##############################################################
|
-- cbi-section -- ##############################################################
|
||||||
local ns = m:section( NamedSection, "privoxy", "privoxy")
|
local ns = m:section( NamedSection, "privoxy", "privoxy")
|
||||||
|
function ns.cfgvalue(self, section)
|
||||||
|
if not self.map:get("system") then -- section might not exist
|
||||||
|
self.map:set("system", nil, "system")
|
||||||
|
end
|
||||||
|
if not self.map:get(section) then -- section might not exist
|
||||||
|
self.map:set(section, nil, self.sectiontype)
|
||||||
|
end
|
||||||
|
return self.map:get(section)
|
||||||
|
end
|
||||||
|
|
||||||
ns:tab("local",
|
ns:tab("sys",
|
||||||
translate("Local Set-up"),
|
translate("System"),
|
||||||
|
nil )
|
||||||
|
local function err_tab_sys(title, msg)
|
||||||
|
return string.format(translate("System") .. " - %s: %s", title, msg )
|
||||||
|
end
|
||||||
|
|
||||||
|
ns:tab("doc",
|
||||||
|
translate("Documentation"),
|
||||||
translate("If you intend to operate Privoxy for more users than just yourself, "
|
translate("If you intend to operate Privoxy for more users than just yourself, "
|
||||||
.. "it might be a good idea to let them know how to reach you, what you block "
|
.. "it might be a good idea to let them know how to reach you, what you block "
|
||||||
.. "and why you do that, your policies, etc.") )
|
.. "and why you do that, your policies, etc.") )
|
||||||
local function err_tab_local(title, msg)
|
local function err_tab_doc(title, msg)
|
||||||
return string.format(translate("Local Set-up") .. " - %s: %s", title, msg )
|
return string.format(translate("Documentation") .. " - %s: %s", title, msg )
|
||||||
end
|
end
|
||||||
|
|
||||||
ns:tab("filter",
|
ns:tab("filter",
|
||||||
|
@ -124,7 +111,7 @@ ns:tab("logview",
|
||||||
-- tab: local -- ###############################################################
|
-- tab: local -- ###############################################################
|
||||||
|
|
||||||
-- start/stop button -----------------------------------------------------------
|
-- start/stop button -----------------------------------------------------------
|
||||||
local btn = ns:taboption("local", Button, "_startstop")
|
local btn = ns:taboption("sys", Button, "_startstop")
|
||||||
btn.title = translate("Start / Stop")
|
btn.title = translate("Start / Stop")
|
||||||
btn.description = translate("Start/Stop Privoxy WEB Proxy")
|
btn.description = translate("Start/Stop Privoxy WEB Proxy")
|
||||||
btn.template = "privoxy/detail_startstop"
|
btn.template = "privoxy/detail_startstop"
|
||||||
|
@ -143,7 +130,7 @@ function btn.cfgvalue(self, section)
|
||||||
end
|
end
|
||||||
|
|
||||||
-- enabled ---------------------------------------------------------------------
|
-- enabled ---------------------------------------------------------------------
|
||||||
local ena = ns:taboption("local", Flag, "_enabled")
|
local ena = ns:taboption("sys", Flag, "_enabled")
|
||||||
ena.title = translate("Enabled")
|
ena.title = translate("Enabled")
|
||||||
ena.description = translate("Enable/Disable autostart of Privoxy on system startup and interface events")
|
ena.description = translate("Enable/Disable autostart of Privoxy on system startup and interface events")
|
||||||
ena.orientation = "horizontal" -- put description under the checkbox
|
ena.orientation = "horizontal" -- put description under the checkbox
|
||||||
|
@ -151,11 +138,7 @@ ena.rmempty = false
|
||||||
function ena.cfgvalue(self, section)
|
function ena.cfgvalue(self, section)
|
||||||
return (SYS.init.enabled("privoxy")) and "1" or "0"
|
return (SYS.init.enabled("privoxy")) and "1" or "0"
|
||||||
end
|
end
|
||||||
function ena.validate(self, value)
|
|
||||||
error("Validate " .. value)
|
|
||||||
end
|
|
||||||
function ena.write(self, section, value)
|
function ena.write(self, section, value)
|
||||||
--error("Write " .. value)
|
|
||||||
if value == "1" then
|
if value == "1" then
|
||||||
return SYS.init.enable("privoxy")
|
return SYS.init.enable("privoxy")
|
||||||
else
|
else
|
||||||
|
@ -163,24 +146,61 @@ function ena.write(self, section, value)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
-- boot_delay ------------------------------------------------------------------
|
||||||
|
local bd = ns:taboption("sys", Value, "boot_delay")
|
||||||
|
bd.title = translate("Boot delay")
|
||||||
|
bd.description = translate("Delay (in seconds) during system boot before Privoxy start")
|
||||||
|
.. [[<br />]]
|
||||||
|
.. translate("During delay ifup-events are not monitored !")
|
||||||
|
bd.default = "10"
|
||||||
|
bd.rmempty = false
|
||||||
|
-- value is in a separate section so we need to do by hand
|
||||||
|
function bd.cfgvalue(self, section)
|
||||||
|
local value = tonumber(self.map:get("system", "boot_delay") )
|
||||||
|
if not value then return nil end
|
||||||
|
return tostring(value)
|
||||||
|
end
|
||||||
|
function bd.validate(self, value)
|
||||||
|
local val = tonumber(value)
|
||||||
|
if not val then
|
||||||
|
return nil, err_tab_sys(self.title, translate("Value is not a number") )
|
||||||
|
elseif val < 0 or val > 300 then
|
||||||
|
return nil, err_tab_sys(self.title, translate("Value not between 0 and 300") )
|
||||||
|
end
|
||||||
|
return value
|
||||||
|
end
|
||||||
|
function bd.write(self, section, value)
|
||||||
|
local fvalue = self:formvalue(section)
|
||||||
|
local cvalue = self:cfgvalue(section)
|
||||||
|
if (fvalue ~= cvalue) then
|
||||||
|
self.map:set("system", "boot_delay", value)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
-- hostname --------------------------------------------------------------------
|
-- hostname --------------------------------------------------------------------
|
||||||
local hn = ns:taboption("local", Value, "hostname")
|
local hn = ns:taboption("doc", Value, "hostname")
|
||||||
hn.title = string.format(HELP, "HOSTNAME", "Hostname" )
|
hn.title = string.format(HELP, "HOSTNAME", "Hostname" )
|
||||||
hn.description = translate("The hostname shown on the CGI pages.")
|
hn.description = translate("The hostname shown on the CGI pages.")
|
||||||
hn.placeholder = SYS.hostname()
|
hn.placeholder = SYS.hostname()
|
||||||
hn.optional = true
|
hn.optional = true
|
||||||
hn.rmempty = true
|
hn.rmempty = true
|
||||||
|
function hn.parse(self, section, novld)
|
||||||
|
CTRL.value_parse(self, section, novld)
|
||||||
|
end
|
||||||
|
|
||||||
-- user-manual -----------------------------------------------------------------
|
-- user-manual -----------------------------------------------------------------
|
||||||
local um = ns:taboption("local", Value, "user_manual")
|
local um = ns:taboption("doc", Value, "user_manual")
|
||||||
um.title = string.format(HELP, "USER-MANUAL", "User Manual" )
|
um.title = string.format(HELP, "USER-MANUAL", "User Manual" )
|
||||||
um.description = translate("Location of the Privoxy User Manual.")
|
um.description = translate("Location of the Privoxy User Manual.")
|
||||||
um.placeholder = "http://www.privoxy.org/user-manual/"
|
um.placeholder = "http://www.privoxy.org/user-manual/"
|
||||||
um.optional = true
|
um.optional = true
|
||||||
um.rmempty = true
|
um.rmempty = true
|
||||||
|
function um.parse(self, section, novld)
|
||||||
|
CTRL.value_parse(self, section, novld)
|
||||||
|
end
|
||||||
|
|
||||||
-- admin-address ---------------------------------------------------------------
|
-- admin-address ---------------------------------------------------------------
|
||||||
local aa = ns:taboption("local", Value, "admin_address")
|
local aa = ns:taboption("doc", Value, "admin_address")
|
||||||
aa.title_base = "Admin Email"
|
aa.title_base = "Admin Email"
|
||||||
aa.title = string.format(HELP, "ADMIN-ADDRESS", aa.title_base )
|
aa.title = string.format(HELP, "ADMIN-ADDRESS", aa.title_base )
|
||||||
aa.description = translate("An email address to reach the Privoxy administrator.")
|
aa.description = translate("An email address to reach the Privoxy administrator.")
|
||||||
|
@ -192,20 +212,26 @@ function aa.validate(self, value)
|
||||||
return ""
|
return ""
|
||||||
end
|
end
|
||||||
if not (value:match("[A-Za-z0-9%.%%%+%-]+@[A-Za-z0-9%.%%%+%-]+%.%w%w%w?%w?")) then
|
if not (value:match("[A-Za-z0-9%.%%%+%-]+@[A-Za-z0-9%.%%%+%-]+%.%w%w%w?%w?")) then
|
||||||
return nil, err_tab_local(self.title_base, translate("Invalid email address") )
|
return nil, err_tab_doc(self.title_base, translate("Invalid email address") )
|
||||||
end
|
end
|
||||||
return value
|
return value
|
||||||
end
|
end
|
||||||
|
function aa.parse(self, section, novld)
|
||||||
|
CTRL.value_parse(self, section, novld)
|
||||||
|
end
|
||||||
|
|
||||||
-- proxy-info-url --------------------------------------------------------------
|
-- proxy-info-url --------------------------------------------------------------
|
||||||
local piu = ns:taboption("local", Value, "proxy_info_url")
|
local piu = ns:taboption("doc", Value, "proxy_info_url")
|
||||||
piu.title = string.format(HELP, "PROXY-INFO-URL", "Proxy Info URL" )
|
piu.title = string.format(HELP, "PROXY-INFO-URL", "Proxy Info URL" )
|
||||||
piu.description = translate("A URL to documentation about the local Privoxy setup, configuration or policies.")
|
piu.description = translate("A URL to documentation about the local Privoxy setup, configuration or policies.")
|
||||||
piu.optional = true
|
piu.optional = true
|
||||||
piu.rmempty = true
|
piu.rmempty = true
|
||||||
|
function piu.parse(self, section, novld)
|
||||||
|
CTRL.value_parse(self, section, novld)
|
||||||
|
end
|
||||||
|
|
||||||
-- trust-info-url --------------------------------------------------------------
|
-- trust-info-url --------------------------------------------------------------
|
||||||
local tiu = ns:taboption("local", Value, "trust_info_url")
|
local tiu = ns:taboption("doc", Value, "trust_info_url")
|
||||||
tiu.title = string.format(HELP, "TRUST-INFO-URL", "Trust Info URLs" )
|
tiu.title = string.format(HELP, "TRUST-INFO-URL", "Trust Info URLs" )
|
||||||
tiu.description = translate("A URL to be displayed in the error page that users will see if access to an untrusted page is denied.")
|
tiu.description = translate("A URL to be displayed in the error page that users will see if access to an untrusted page is denied.")
|
||||||
.. [[<br /><strong>]]
|
.. [[<br /><strong>]]
|
||||||
|
@ -213,6 +239,9 @@ tiu.description = translate("A URL to be displayed in the error page that users
|
||||||
.. [[</strong>]]
|
.. [[</strong>]]
|
||||||
tiu.optional = true
|
tiu.optional = true
|
||||||
tiu.rmepty = true
|
tiu.rmepty = true
|
||||||
|
function tiu.parse(self, section, novld)
|
||||||
|
CTRL.value_parse(self, section, novld)
|
||||||
|
end
|
||||||
|
|
||||||
-- tab: filter -- ##############################################################
|
-- tab: filter -- ##############################################################
|
||||||
|
|
||||||
|
@ -234,6 +263,9 @@ function ld.validate(self, value)
|
||||||
return value
|
return value
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
function ld.parse(self, section, novld)
|
||||||
|
CTRL.value_parse(self, section, novld)
|
||||||
|
end
|
||||||
|
|
||||||
-- logfile ---------------------------------------------------------------------
|
-- logfile ---------------------------------------------------------------------
|
||||||
local lf = ns:taboption("filter", Value, "logfile")
|
local lf = ns:taboption("filter", Value, "logfile")
|
||||||
|
@ -526,9 +558,6 @@ tgl.description = translate("Enable/Disable filtering when Privoxy starts.")
|
||||||
tgl.orientation = "horizontal"
|
tgl.orientation = "horizontal"
|
||||||
tgl.default = "1"
|
tgl.default = "1"
|
||||||
tgl.rmempty = false
|
tgl.rmempty = false
|
||||||
function tgl.parse(self, section)
|
|
||||||
CTRL.flag_parse(self, section)
|
|
||||||
end
|
|
||||||
|
|
||||||
-- enable-remote-toggle --------------------------------------------------------
|
-- enable-remote-toggle --------------------------------------------------------
|
||||||
local ert = ns:taboption("access", Flag, "enable_remote_toggle")
|
local ert = ns:taboption("access", Flag, "enable_remote_toggle")
|
||||||
|
@ -536,9 +565,6 @@ ert.title = string.format(HELP, "ENABLE-REMOTE-TOGGLE", "Enable remote toggle" )
|
||||||
ert.description = translate("Whether or not the web-based toggle feature may be used.")
|
ert.description = translate("Whether or not the web-based toggle feature may be used.")
|
||||||
ert.orientation = "horizontal"
|
ert.orientation = "horizontal"
|
||||||
ert.rmempty = true
|
ert.rmempty = true
|
||||||
function ert.parse(self, section)
|
|
||||||
CTRL.flag_parse(self, section)
|
|
||||||
end
|
|
||||||
|
|
||||||
-- enable-remote-http-toggle ---------------------------------------------------
|
-- enable-remote-http-toggle ---------------------------------------------------
|
||||||
local eht = ns:taboption("access", Flag, "enable_remote_http_toggle")
|
local eht = ns:taboption("access", Flag, "enable_remote_http_toggle")
|
||||||
|
@ -549,9 +575,6 @@ eht.description = translate("Whether or not Privoxy recognizes special HTTP head
|
||||||
.. [[</strong>]]
|
.. [[</strong>]]
|
||||||
eht.orientation = "horizontal"
|
eht.orientation = "horizontal"
|
||||||
eht.rmempty = true
|
eht.rmempty = true
|
||||||
function eht.parse(self, section)
|
|
||||||
CTRL.flag_parse(self, section)
|
|
||||||
end
|
|
||||||
|
|
||||||
-- enable-edit-actions ---------------------------------------------------------
|
-- enable-edit-actions ---------------------------------------------------------
|
||||||
local eea = ns:taboption("access", Flag, "enable_edit_actions")
|
local eea = ns:taboption("access", Flag, "enable_edit_actions")
|
||||||
|
@ -559,9 +582,6 @@ eea.title = string.format(HELP, "ENABLE-EDIT-ACTIONS", "Enable action file edito
|
||||||
eea.description = translate("Whether or not the web-based actions file editor may be used.")
|
eea.description = translate("Whether or not the web-based actions file editor may be used.")
|
||||||
eea.orientation = "horizontal"
|
eea.orientation = "horizontal"
|
||||||
eea.rmempty = true
|
eea.rmempty = true
|
||||||
function eea.parse(self, section)
|
|
||||||
CTRL.flag_parse(self, section)
|
|
||||||
end
|
|
||||||
|
|
||||||
-- enforce-blocks --------------------------------------------------------------
|
-- enforce-blocks --------------------------------------------------------------
|
||||||
local eb = ns:taboption("access", Flag, "enforce_blocks")
|
local eb = ns:taboption("access", Flag, "enforce_blocks")
|
||||||
|
@ -570,9 +590,6 @@ eb.description = translate("If enabled, Privoxy hides the 'go there anyway' link
|
||||||
.. "The user obviously should not be able to bypass any blocks.")
|
.. "The user obviously should not be able to bypass any blocks.")
|
||||||
eb.orientation = "horizontal"
|
eb.orientation = "horizontal"
|
||||||
eb.rmempty = true
|
eb.rmempty = true
|
||||||
function eb.parse(self, section)
|
|
||||||
CTRL.flag_parse(self, section)
|
|
||||||
end
|
|
||||||
|
|
||||||
-- tab: forward -- #############################################################
|
-- tab: forward -- #############################################################
|
||||||
|
|
||||||
|
@ -586,9 +603,6 @@ paf.description = translate("Whether or not proxy authentication through Privoxy
|
||||||
.. [[</strong>]]
|
.. [[</strong>]]
|
||||||
--paf.orientation = "horizontal"
|
--paf.orientation = "horizontal"
|
||||||
paf.rmempty = true
|
paf.rmempty = true
|
||||||
function paf.parse(self, section)
|
|
||||||
CTRL.flag_parse(self, section)
|
|
||||||
end
|
|
||||||
|
|
||||||
-- forward ---------------------------------------------------------------------
|
-- forward ---------------------------------------------------------------------
|
||||||
local fwd = ns:taboption("forward", DynamicList, "forward")
|
local fwd = ns:taboption("forward", DynamicList, "forward")
|
||||||
|
@ -632,9 +646,6 @@ air.title = string.format(HELP, "ACCEPT-INTERCEPTED-REQUESTS", "Accept intercept
|
||||||
air.description = translate("Whether intercepted requests should be treated as valid.")
|
air.description = translate("Whether intercepted requests should be treated as valid.")
|
||||||
air.orientation = "horizontal"
|
air.orientation = "horizontal"
|
||||||
air.rmempty = true
|
air.rmempty = true
|
||||||
function air.parse(self, section)
|
|
||||||
CTRL.flag_parse(self, section)
|
|
||||||
end
|
|
||||||
|
|
||||||
-- allow-cgi-request-crunching -------------------------------------------------
|
-- allow-cgi-request-crunching -------------------------------------------------
|
||||||
local crc = ns:taboption("misc", Flag, "allow_cgi_request_crunching")
|
local crc = ns:taboption("misc", Flag, "allow_cgi_request_crunching")
|
||||||
|
@ -642,9 +653,6 @@ crc.title = string.format(HELP, "ALLOW-CGI-REQUEST-CRUNCHING", "Allow CGI reques
|
||||||
crc.description = translate("Whether requests to Privoxy's CGI pages can be blocked or redirected.")
|
crc.description = translate("Whether requests to Privoxy's CGI pages can be blocked or redirected.")
|
||||||
crc.orientation = "horizontal"
|
crc.orientation = "horizontal"
|
||||||
crc.rmempty = true
|
crc.rmempty = true
|
||||||
function crc.parse(self, section)
|
|
||||||
CTRL.flag_parse(self, section)
|
|
||||||
end
|
|
||||||
|
|
||||||
-- split-large-forms -----------------------------------------------------------
|
-- split-large-forms -----------------------------------------------------------
|
||||||
local slf = ns:taboption("misc", Flag, "split_large_forms")
|
local slf = ns:taboption("misc", Flag, "split_large_forms")
|
||||||
|
@ -652,9 +660,6 @@ slf.title = string.format(HELP, "SPLIT-LARGE-FORMS", "Split large forms" )
|
||||||
slf.description = translate("Whether the CGI interface should stay compatible with broken HTTP clients.")
|
slf.description = translate("Whether the CGI interface should stay compatible with broken HTTP clients.")
|
||||||
slf.orientation = "horizontal"
|
slf.orientation = "horizontal"
|
||||||
slf.rmempty = true
|
slf.rmempty = true
|
||||||
function slf.parse(self, section)
|
|
||||||
CTRL.flag_parse(self, section)
|
|
||||||
end
|
|
||||||
|
|
||||||
-- keep-alive-timeout ----------------------------------------------------------
|
-- keep-alive-timeout ----------------------------------------------------------
|
||||||
local kat = ns:taboption("misc", Value, "keep_alive_timeout")
|
local kat = ns:taboption("misc", Value, "keep_alive_timeout")
|
||||||
|
@ -678,9 +683,6 @@ tp.title = string.format(HELP, "TOLERATE-PIPELINING", "Tolerate pipelining" )
|
||||||
tp.description = translate("Whether or not pipelined requests should be served.")
|
tp.description = translate("Whether or not pipelined requests should be served.")
|
||||||
tp.orientation = "horizontal"
|
tp.orientation = "horizontal"
|
||||||
tp.rmempty = true
|
tp.rmempty = true
|
||||||
function tp.parse(self, section)
|
|
||||||
CTRL.flag_parse(self, section)
|
|
||||||
end
|
|
||||||
|
|
||||||
-- default-server-timeout ------------------------------------------------------
|
-- default-server-timeout ------------------------------------------------------
|
||||||
local dst = ns:taboption("misc", Value, "default_server_timeout")
|
local dst = ns:taboption("misc", Value, "default_server_timeout")
|
||||||
|
@ -704,9 +706,6 @@ cs.title = string.format(HELP, "CONNECTION-SHARING", "Connection sharing" )
|
||||||
cs.description = translate("Whether or not outgoing connections that have been kept alive should be shared between different incoming connections.")
|
cs.description = translate("Whether or not outgoing connections that have been kept alive should be shared between different incoming connections.")
|
||||||
cs.orientation = "horizontal"
|
cs.orientation = "horizontal"
|
||||||
cs.rmempty = true
|
cs.rmempty = true
|
||||||
function cs.parse(self, section)
|
|
||||||
CTRL.flag_parse(self, section)
|
|
||||||
end
|
|
||||||
|
|
||||||
-- socket-timeout --------------------------------------------------------------
|
-- socket-timeout --------------------------------------------------------------
|
||||||
local st = ns:taboption("misc", Value, "socket_timeout")
|
local st = ns:taboption("misc", Value, "socket_timeout")
|
||||||
|
@ -752,9 +751,6 @@ her.title = string.format(HELP, "HANDLE-AS-EMPTY-DOC-RETURNS-OK", "Handle as emp
|
||||||
her.description = translate("The status code Privoxy returns for pages blocked with +handle-as-empty-document.")
|
her.description = translate("The status code Privoxy returns for pages blocked with +handle-as-empty-document.")
|
||||||
her.orientation = "horizontal"
|
her.orientation = "horizontal"
|
||||||
her.rmempty = true
|
her.rmempty = true
|
||||||
function her.parse(self, section)
|
|
||||||
CTRL.flag_parse(self, section)
|
|
||||||
end
|
|
||||||
|
|
||||||
-- enable-compression ----------------------------------------------------------
|
-- enable-compression ----------------------------------------------------------
|
||||||
local ec = ns:taboption("misc", Flag, "enable_compression")
|
local ec = ns:taboption("misc", Flag, "enable_compression")
|
||||||
|
@ -762,9 +758,6 @@ ec.title = string.format(HELP, "ENABLE-COMPRESSION", "Enable compression" )
|
||||||
ec.description = translate("Whether or not buffered content is compressed before delivery.")
|
ec.description = translate("Whether or not buffered content is compressed before delivery.")
|
||||||
ec.orientation = "horizontal"
|
ec.orientation = "horizontal"
|
||||||
ec.rmempty = true
|
ec.rmempty = true
|
||||||
function ec.parse(self, section)
|
|
||||||
CTRL.flag_parse(self, section)
|
|
||||||
end
|
|
||||||
|
|
||||||
-- compression-level -----------------------------------------------------------
|
-- compression-level -----------------------------------------------------------
|
||||||
local cl = ns:taboption("misc", Value, "compression_level")
|
local cl = ns:taboption("misc", Value, "compression_level")
|
||||||
|
@ -803,135 +796,90 @@ st.description = translate("Whether to run only one server thread.")
|
||||||
.. translate("This option is only there for debugging purposes. It will drastically reduce performance.")
|
.. translate("This option is only there for debugging purposes. It will drastically reduce performance.")
|
||||||
.. [[</strong>]]
|
.. [[</strong>]]
|
||||||
st.rmempty = true
|
st.rmempty = true
|
||||||
function st.parse(self, section)
|
|
||||||
CTRL.flag_parse(self, section)
|
|
||||||
end
|
|
||||||
|
|
||||||
-- debug 1 ---------------------------------------------------------------------
|
-- debug 1 ---------------------------------------------------------------------
|
||||||
local d0 = ns:taboption("debug", Flag, "debug_1")
|
local d0 = ns:taboption("debug", Flag, "debug_1")
|
||||||
d0.title = string.format(HELP, "DEBUG", "Debug 1" )
|
d0.title = string.format(HELP, "DEBUG", "Debug 1" )
|
||||||
d0.description = translate("Log the destination for each request Privoxy let through. See also 'Debug 1024'.")
|
d0.description = translate("Log the destination for each request Privoxy let through. See also 'Debug 1024'.")
|
||||||
d0.rmempty = true
|
d0.rmempty = true
|
||||||
function d0.parse(self, section)
|
|
||||||
CTRL.flag_parse(self, section)
|
|
||||||
end
|
|
||||||
|
|
||||||
-- debug 2 ---------------------------------------------------------------------
|
-- debug 2 ---------------------------------------------------------------------
|
||||||
local d1 = ns:taboption("debug", Flag, "debug_2")
|
local d1 = ns:taboption("debug", Flag, "debug_2")
|
||||||
d1.title = string.format(HELP, "DEBUG", "Debug 2" )
|
d1.title = string.format(HELP, "DEBUG", "Debug 2" )
|
||||||
d1.description = translate("Show each connection status")
|
d1.description = translate("Show each connection status")
|
||||||
d1.rmempty = true
|
d1.rmempty = true
|
||||||
function d1.parse(self, section)
|
|
||||||
CTRL.flag_parse(self, section)
|
|
||||||
end
|
|
||||||
|
|
||||||
-- debug 4 ---------------------------------------------------------------------
|
-- debug 4 ---------------------------------------------------------------------
|
||||||
local d2 = ns:taboption("debug", Flag, "debug_4")
|
local d2 = ns:taboption("debug", Flag, "debug_4")
|
||||||
d2.title = string.format(HELP, "DEBUG", "Debug 4" )
|
d2.title = string.format(HELP, "DEBUG", "Debug 4" )
|
||||||
d2.description = translate("Show I/O status")
|
d2.description = translate("Show I/O status")
|
||||||
d2.rmempty = true
|
d2.rmempty = true
|
||||||
function d2.parse(self, section)
|
|
||||||
CTRL.flag_parse(self, section)
|
|
||||||
end
|
|
||||||
|
|
||||||
-- debug 8 ---------------------------------------------------------------------
|
-- debug 8 ---------------------------------------------------------------------
|
||||||
local d3 = ns:taboption("debug", Flag, "debug_8")
|
local d3 = ns:taboption("debug", Flag, "debug_8")
|
||||||
d3.title = string.format(HELP, "DEBUG", "Debug 8" )
|
d3.title = string.format(HELP, "DEBUG", "Debug 8" )
|
||||||
d3.description = translate("Show header parsing")
|
d3.description = translate("Show header parsing")
|
||||||
d3.rmempty = true
|
d3.rmempty = true
|
||||||
function d3.parse(self, section)
|
|
||||||
CTRL.flag_parse(self, section)
|
|
||||||
end
|
|
||||||
|
|
||||||
-- debug 16 --------------------------------------------------------------------
|
-- debug 16 --------------------------------------------------------------------
|
||||||
local d4 = ns:taboption("debug", Flag, "debug_16")
|
local d4 = ns:taboption("debug", Flag, "debug_16")
|
||||||
d4.title = string.format(HELP, "DEBUG", "Debug 16" )
|
d4.title = string.format(HELP, "DEBUG", "Debug 16" )
|
||||||
d4.description = translate("Log all data written to the network")
|
d4.description = translate("Log all data written to the network")
|
||||||
d4.rmempty = true
|
d4.rmempty = true
|
||||||
function d4.parse(self, section)
|
|
||||||
CTRL.flag_parse(self, section)
|
|
||||||
end
|
|
||||||
|
|
||||||
-- debug 32 --------------------------------------------------------------------
|
-- debug 32 --------------------------------------------------------------------
|
||||||
local d5 = ns:taboption("debug", Flag, "debug_32")
|
local d5 = ns:taboption("debug", Flag, "debug_32")
|
||||||
d5.title = string.format(HELP, "DEBUG", "Debug 32" )
|
d5.title = string.format(HELP, "DEBUG", "Debug 32" )
|
||||||
d5.description = translate("Debug force feature")
|
d5.description = translate("Debug force feature")
|
||||||
d5.rmempty = true
|
d5.rmempty = true
|
||||||
function d5.parse(self, section)
|
|
||||||
CTRL.flag_parse(self, section)
|
|
||||||
end
|
|
||||||
|
|
||||||
-- debug 64 --------------------------------------------------------------------
|
-- debug 64 --------------------------------------------------------------------
|
||||||
local d6 = ns:taboption("debug", Flag, "debug_64")
|
local d6 = ns:taboption("debug", Flag, "debug_64")
|
||||||
d6.title = string.format(HELP, "DEBUG", "Debug 64" )
|
d6.title = string.format(HELP, "DEBUG", "Debug 64" )
|
||||||
d6.description = translate("Debug regular expression filters")
|
d6.description = translate("Debug regular expression filters")
|
||||||
d6.rmempty = true
|
d6.rmempty = true
|
||||||
function d6.parse(self, section)
|
|
||||||
CTRL.flag_parse(self, section)
|
|
||||||
end
|
|
||||||
|
|
||||||
-- debug 128 -------------------------------------------------------------------
|
-- debug 128 -------------------------------------------------------------------
|
||||||
local d7 = ns:taboption("debug", Flag, "debug_128")
|
local d7 = ns:taboption("debug", Flag, "debug_128")
|
||||||
d7.title = string.format(HELP, "DEBUG", "Debug 128" )
|
d7.title = string.format(HELP, "DEBUG", "Debug 128" )
|
||||||
d7.description = translate("Debug redirects")
|
d7.description = translate("Debug redirects")
|
||||||
d7.rmempty = true
|
d7.rmempty = true
|
||||||
function d7.parse(self, section)
|
|
||||||
CTRL.flag_parse(self, section)
|
|
||||||
end
|
|
||||||
|
|
||||||
-- debug 256 -------------------------------------------------------------------
|
-- debug 256 -------------------------------------------------------------------
|
||||||
local d8 = ns:taboption("debug", Flag, "debug_256")
|
local d8 = ns:taboption("debug", Flag, "debug_256")
|
||||||
d8.title = string.format(HELP, "DEBUG", "Debug 256" )
|
d8.title = string.format(HELP, "DEBUG", "Debug 256" )
|
||||||
d8.description = translate("Debug GIF de-animation")
|
d8.description = translate("Debug GIF de-animation")
|
||||||
d8.rmempty = true
|
d8.rmempty = true
|
||||||
function d8.parse(self, section)
|
|
||||||
CTRL.flag_parse(self, section)
|
|
||||||
end
|
|
||||||
|
|
||||||
-- debug 512 -------------------------------------------------------------------
|
-- debug 512 -------------------------------------------------------------------
|
||||||
local d9 = ns:taboption("debug", Flag, "debug_512")
|
local d9 = ns:taboption("debug", Flag, "debug_512")
|
||||||
d9.title = string.format(HELP, "DEBUG", "Debug 512" )
|
d9.title = string.format(HELP, "DEBUG", "Debug 512" )
|
||||||
d9.description = translate("Common Log Format")
|
d9.description = translate("Common Log Format")
|
||||||
d9.rmempty = true
|
d9.rmempty = true
|
||||||
function d9.parse(self, section)
|
|
||||||
CTRL.flag_parse(self, section)
|
|
||||||
end
|
|
||||||
|
|
||||||
-- debug 1024 ------------------------------------------------------------------
|
-- debug 1024 ------------------------------------------------------------------
|
||||||
local d10 = ns:taboption("debug", Flag, "debug_1024")
|
local d10 = ns:taboption("debug", Flag, "debug_1024")
|
||||||
d10.title = string.format(HELP, "DEBUG", "Debug 1024" )
|
d10.title = string.format(HELP, "DEBUG", "Debug 1024" )
|
||||||
d10.description = translate("Log the destination for requests Privoxy didn't let through, and the reason why.")
|
d10.description = translate("Log the destination for requests Privoxy didn't let through, and the reason why.")
|
||||||
d10.rmempty = true
|
d10.rmempty = true
|
||||||
function d10.parse(self, section)
|
|
||||||
CTRL.flag_parse(self, section)
|
|
||||||
end
|
|
||||||
|
|
||||||
-- debug 2048 ------------------------------------------------------------------
|
-- debug 2048 ------------------------------------------------------------------
|
||||||
local d11 = ns:taboption("debug", Flag, "debug_2048")
|
local d11 = ns:taboption("debug", Flag, "debug_2048")
|
||||||
d11.title = string.format(HELP, "DEBUG", "Debug 2048" )
|
d11.title = string.format(HELP, "DEBUG", "Debug 2048" )
|
||||||
d11.description = translate("CGI user interface")
|
d11.description = translate("CGI user interface")
|
||||||
d11.rmempty = true
|
d11.rmempty = true
|
||||||
function d11.parse(self, section)
|
|
||||||
CTRL.flag_parse(self, section)
|
|
||||||
end
|
|
||||||
|
|
||||||
-- debug 4096 ------------------------------------------------------------------
|
-- debug 4096 ------------------------------------------------------------------
|
||||||
local d12 = ns:taboption("debug", Flag, "debug_4096")
|
local d12 = ns:taboption("debug", Flag, "debug_4096")
|
||||||
d12.title = string.format(HELP, "DEBUG", "Debug 4096" )
|
d12.title = string.format(HELP, "DEBUG", "Debug 4096" )
|
||||||
d12.description = translate("Startup banner and warnings.")
|
d12.description = translate("Startup banner and warnings.")
|
||||||
d12.rmempty = true
|
d12.rmempty = true
|
||||||
function d12.parse(self, section)
|
|
||||||
CTRL.flag_parse(self, section)
|
|
||||||
end
|
|
||||||
|
|
||||||
-- debug 8192 ------------------------------------------------------------------
|
-- debug 8192 ------------------------------------------------------------------
|
||||||
local d13 = ns:taboption("debug", Flag, "debug_8192")
|
local d13 = ns:taboption("debug", Flag, "debug_8192")
|
||||||
d13.title = string.format(HELP, "DEBUG", "Debug 8192" )
|
d13.title = string.format(HELP, "DEBUG", "Debug 8192" )
|
||||||
d13.description = translate("Non-fatal errors - *we highly recommended enabling this*")
|
d13.description = translate("Non-fatal errors - *we highly recommended enabling this*")
|
||||||
d13.rmempty = true
|
d13.rmempty = true
|
||||||
function d13.parse(self, section)
|
|
||||||
CTRL.flag_parse(self, section)
|
|
||||||
end
|
|
||||||
|
|
||||||
-- debug 16384 -----------------------------------------------------------------
|
-- debug 16384 -----------------------------------------------------------------
|
||||||
--[[ TODO ???
|
--[[ TODO ???
|
||||||
|
@ -939,9 +887,6 @@ local d14 = ns:taboption("debug", Flag, "debug_16384")
|
||||||
d14.title = string.format(HELP, "DEBUG", "Debug 16384" )
|
d14.title = string.format(HELP, "DEBUG", "Debug 16384" )
|
||||||
d14.description = translate("")
|
d14.description = translate("")
|
||||||
d14.rmempty = true
|
d14.rmempty = true
|
||||||
function d14.parse(self, section)
|
|
||||||
CTRL.flag_parse(self, section)
|
|
||||||
end
|
|
||||||
]]--
|
]]--
|
||||||
|
|
||||||
-- debug 32768 -----------------------------------------------------------------
|
-- debug 32768 -----------------------------------------------------------------
|
||||||
|
@ -949,18 +894,12 @@ local d15 = ns:taboption("debug", Flag, "debug_32768")
|
||||||
d15.title = string.format(HELP, "DEBUG", "Debug 32768" )
|
d15.title = string.format(HELP, "DEBUG", "Debug 32768" )
|
||||||
d15.description = translate("Log all data read from the network")
|
d15.description = translate("Log all data read from the network")
|
||||||
d15.rmempty = true
|
d15.rmempty = true
|
||||||
function d15.parse(self, section)
|
|
||||||
CTRL.flag_parse(self, section)
|
|
||||||
end
|
|
||||||
|
|
||||||
-- debug 65536 -----------------------------------------------------------------
|
-- debug 65536 -----------------------------------------------------------------
|
||||||
local d16 = ns:taboption("debug", Flag, "debug_65536")
|
local d16 = ns:taboption("debug", Flag, "debug_65536")
|
||||||
d16.title = string.format(HELP, "DEBUG", "Debug 65536" )
|
d16.title = string.format(HELP, "DEBUG", "Debug 65536" )
|
||||||
d16.description = translate("Log the applying actions")
|
d16.description = translate("Log the applying actions")
|
||||||
d16.rmempty = true
|
d16.rmempty = true
|
||||||
function d16.parse(self, section)
|
|
||||||
CTRL.flag_parse(self, section)
|
|
||||||
end
|
|
||||||
|
|
||||||
-- tab: logview -- #############################################################
|
-- tab: logview -- #############################################################
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue