Merge pull request #1801 from dibdot/adblock

luci-app-adblock: respect SimpleForm size limit
This commit is contained in:
Dirk Brenken 2018-05-18 18:31:07 +02:00 committed by GitHub
commit 72fe5dd703
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 35 additions and 27 deletions

View file

@ -1,4 +1,4 @@
-- Copyright 2017 Dirk Brenken (dev@brenken.org)
-- Copyright 2017-2018 Dirk Brenken (dev@brenken.org)
-- This is free software, licensed under the Apache License, Version 2.0
local fs = require("nixio.fs")
@ -6,17 +6,16 @@ local util = require("luci.util")
local uci = require("luci.model.uci").cursor()
local adbinput = uci:get("adblock", "blacklist", "adb_src") or "/etc/adblock/adblock.blacklist"
if not nixio.fs.access(adbinput) then
m = SimpleForm("error", nil,
translate("Input file not found, please check your configuration."))
if not fs.access(adbinput) then
m = SimpleForm("error", nil, translate("Input file not found, please check your configuration."))
m.reset = false
m.submit = false
return m
end
if nixio.fs.stat(adbinput).size > 524288 then
if fs.stat(adbinput).size >= 102400 then
m = SimpleForm("error", nil,
translate("The file size is too large for online editing in LuCI (> 512 KB). ")
translate("The file size is too large for online editing in LuCI (≥ 100 KB). ")
.. translate("Please edit this file directly in a terminal session."))
m.reset = false
m.submit = false
@ -38,11 +37,11 @@ f.rows = 20
f.rmempty = true
function f.cfgvalue()
return nixio.fs.readfile(adbinput) or ""
return fs.readfile(adbinput) or ""
end
function f.write(self, section, data)
return nixio.fs.writefile(adbinput, "\n" .. util.trim(data:gsub("\r\n", "\n")) .. "\n")
return fs.writefile(adbinput, "\n" .. util.trim(data:gsub("\r\n", "\n")) .. "\n")
end
function s.handle(self, state, data)

View file

@ -1,17 +1,26 @@
-- Copyright 2017 Dirk Brenken (dev@brenken.org)
-- Copyright 2017-2018 Dirk Brenken (dev@brenken.org)
-- This is free software, licensed under the Apache License, Version 2.0
local fs = require("nixio.fs")
local util = require("luci.util")
local adbinput = "/etc/config/adblock"
if not nixio.fs.access(adbinput) then
if not fs.access(adbinput) then
m = SimpleForm("error", nil, translate("Input file not found, please check your configuration."))
m.reset = false
m.submit = false
return m
end
if fs.stat(adbinput).size >= 102400 then
m = SimpleForm("error", nil,
translate("The file size is too large for online editing in LuCI (≥ 100 KB). ")
.. translate("Please edit this file directly in a terminal session."))
m.reset = false
m.submit = false
return m
end
m = SimpleForm("input", nil)
m:append(Template("adblock/config_css"))
m.submit = translate("Save")
@ -25,11 +34,11 @@ f.rows = 20
f.rmempty = true
function f.cfgvalue()
return nixio.fs.readfile(adbinput) or ""
return fs.readfile(adbinput) or ""
end
function f.write(self, section, data)
return nixio.fs.writefile(adbinput, "\n" .. util.trim(data:gsub("\r\n", "\n")) .. "\n")
return fs.writefile(adbinput, "\n" .. util.trim(data:gsub("\r\n", "\n")) .. "\n")
end
function s.handle(self, state, data)

View file

@ -1,4 +1,4 @@
-- Copyright 2017 Dirk Brenken (dev@brenken.org)
-- Copyright 2017-2018 Dirk Brenken (dev@brenken.org)
-- This is free software, licensed under the Apache License, Version 2.0
local fs = require("nixio.fs")
@ -6,16 +6,16 @@ local util = require("luci.util")
local uci = require("luci.model.uci").cursor()
local adbinput = uci:get("adblock", "global", "adb_whitelist") or "/etc/adblock/adblock.whitelist"
if not nixio.fs.access(adbinput) then
if not fs.access(adbinput) then
m = SimpleForm("error", nil, translate("Input file not found, please check your configuration."))
m.reset = false
m.submit = false
return m
end
if nixio.fs.stat(adbinput).size > 524288 then
if fs.stat(adbinput).size >= 102400 then
m = SimpleForm("error", nil,
translate("The file size is too large for online editing in LuCI (> 512 KB). ")
translate("The file size is too large for online editing in LuCI (≥ 100 KB). ")
.. translate("Please edit this file directly in a terminal session."))
m.reset = false
m.submit = false
@ -37,11 +37,11 @@ f.rows = 20
f.rmempty = true
function f.cfgvalue()
return nixio.fs.readfile(adbinput) or ""
return fs.readfile(adbinput) or ""
end
function f.write(self, section, data)
return nixio.fs.writefile(adbinput, "\n" .. util.trim(data:gsub("\r\n", "\n")) .. "\n")
return fs.writefile(adbinput, "\n" .. util.trim(data:gsub("\r\n", "\n")) .. "\n")
end
function s.handle(self, state, data)