Merge pull request from dibdot/banip

luci-app-banip: sync with release 0.1.0
This commit is contained in:
Dirk Brenken 2019-01-05 22:22:28 +01:00 committed by GitHub
commit 030596d808
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 101 additions and 85 deletions
applications/luci-app-banip/luasrc
controller
model/cbi/banip
view/banip

View file

@ -1,4 +1,4 @@
-- Copyright 2018 Dirk Brenken (dev@brenken.org) -- Copyright 2018-2019 Dirk Brenken (dev@brenken.org)
-- This is free software, licensed under the Apache License, Version 2.0 -- This is free software, licensed under the Apache License, Version 2.0
module("luci.controller.banip", package.seeall) module("luci.controller.banip", package.seeall)
@ -30,8 +30,8 @@ function index()
end end
function ban_action(name) function ban_action(name)
if name == "do_refresh" then if name == "do_reload" then
luci.sys.call("/etc/init.d/banip start >/dev/null 2>&1") luci.sys.call("/etc/init.d/banip reload >/dev/null 2>&1")
end end
luci.http.prepare_content("text/plain") luci.http.prepare_content("text/plain")
luci.http.write("0") luci.http.write("0")

View file

@ -1,4 +1,4 @@
-- Copyright 2018 Dirk Brenken (dev@brenken.org) -- Copyright 2018-2019 Dirk Brenken (dev@brenken.org)
-- This is free software, licensed under the Apache License, Version 2.0 -- This is free software, licensed under the Apache License, Version 2.0
local fs = require("nixio.fs") local fs = require("nixio.fs")
@ -99,96 +99,112 @@ e = m:section(NamedSection, "extra", "banip", translate("Extra Options"),
e1 = e:option(Flag, "ban_debug", translate("Verbose Debug Logging"), e1 = e:option(Flag, "ban_debug", translate("Verbose Debug Logging"),
translate("Enable verbose debug logging in case of any processing error.")) translate("Enable verbose debug logging in case of any processing error."))
e1.default = e1.disabled
e1.rmempty = false e1.rmempty = false
e2 = e:option(Flag, "ban_nice", translate("Low Priority Service"), e2 = e:option(Flag, "ban_nice", translate("Low Priority Service"),
translate("Set the nice level to 'low priority' and banIP background processing will take less resources from the system. ") translate("Set the nice level to 'low priority' and banIP background processing will take less resources from the system. ")
..translate("This change requires a manual service stop/re-start to take effect.")) ..translate("This change requires a manual service stop/re-start to take effect."))
e2.default = e2.disabled
e2.disabled = "0" e2.disabled = "0"
e2.enabled = "10" e2.enabled = "10"
e2.rmempty = false e2.rmempty = false
e3 = e:option(Value, "ban_maxqueue", translate("Max. Download Queue"), e3 = e:option(Flag, "ban_backup", translate("Enable Blocklist Backup"),
translate("Size of the download queue to handle downloads & IPset processing in parallel (default '8'). ") translate("Create compressed blocklist backups, they will be used in case of download errors or during startup in 'backup mode'."))
.. translate("For further performance improvements you can raise this value, e.g. '16' or '32' should be safe."))
e3.default = 8
e3.datatype = "range(1,32)"
e3.rmempty = false e3.rmempty = false
e4 = e:option(Value, "ban_triggerdelay", translate("Trigger Delay"), e4 = e:option(Value, "ban_backupdir", translate("Backup Directory"),
translate("Target directory for banIP backups. Please use preferably a non-volatile disk, e.g. an external usb stick."))
e4:depends("ban_backup", 1)
e4.datatype = "directory"
e4.default = "/mnt"
e4.rmempty = true
e5 = e:option(Flag, "ban_backupboot", translate("Backup Mode"),
translate("Do not automatically update blocklists during startup, use their backups instead."))
e5:depends("ban_backup", 1)
e5.rmempty = true
e6 = e:option(Value, "ban_maxqueue", translate("Max. Download Queue"),
translate("Size of the download queue to handle downloads & IPset processing in parallel (default '8'). ")
.. translate("For further performance improvements you can raise this value, e.g. '16' or '32' should be safe."))
e6.default = 8
e6.datatype = "range(1,32)"
e6.rmempty = false
-- Optional Extra Options
e20 = e:option(Value, "ban_triggerdelay", translate("Trigger Delay"),
translate("Additional trigger delay in seconds before banIP processing begins.")) translate("Additional trigger delay in seconds before banIP processing begins."))
e4.default = 2 e20.default = 2
e4.datatype = "range(1,60)" e20.datatype = "range(1,60)"
e4.optional = true
e5 = e:option(Value, "ban_fetchparm", translate("Download Options"),
translate("Special options for the selected download utility, e.g. '--timeout=20 --no-check-certificate -O'."))
e5.optional = true
e10 = e:option(Value, "ban_wan_input_chain", translate("WAN Input Chain IPv4"))
e10.default = "input_wan_rule"
e10.datatype = "uciname"
e10.optional = true
e11 = e:option(Value, "ban_wan_forward_chain", translate("WAN Forward Chain IPv4"))
e11.default = "forwarding_wan_rule"
e11.datatype = "uciname"
e11.optional = true
e12 = e:option(Value, "ban_lan_input_chain", translate("LAN Input Chain IPv4"))
e12.default = "input_lan_rule"
e12.datatype = "uciname"
e12.optional = true
e13 = e:option(Value, "ban_lan_forward_chain", translate("LAN Forward Chain IPv4"))
e13.default = "forwarding_lan_rule"
e13.datatype = "uciname"
e13.optional = true
e14 = e:option(ListValue, "ban_target_src", translate("SRC Target IPv4"))
e14:value("REJECT")
e14:value("DROP")
e14.default = "DROP"
e14.optional = true
e15 = e:option(ListValue, "ban_target_dst", translate("DST Target IPv4"))
e15:value("REJECT")
e15:value("DROP")
e15.default = "REJECT"
e15.optional = true
e16 = e:option(Value, "ban_wan_input_chain_6", translate("WAN Input Chain IPv6"))
e16.default = "input_wan_rule"
e16.datatype = "uciname"
e16.optional = true
e17 = e:option(Value, "ban_wan_forward_chain_6", translate("WAN Forward Chain IPv6"))
e17.default = "forwarding_wan_rule"
e17.datatype = "uciname"
e17.optional = true
e18 = e:option(Value, "ban_lan_input_chain_6", translate("LAN Input Chain IPv6"))
e18.default = "input_lan_rule"
e18.datatype = "uciname"
e18.optional = true
e19 = e:option(Value, "ban_lan_forward_chain_6", translate("LAN Forward Chain IPv6"))
e19.default = "forwarding_lan_rule"
e19.datatype = "uciname"
e19.optional = true
e20 = e:option(ListValue, "ban_target_src_6", translate("SRC Target IPv6"))
e20:value("REJECT")
e20:value("DROP")
e20.default = "DROP"
e20.optional = true e20.optional = true
e21 = e:option(ListValue, "ban_target_dst_6", translate("DST Target IPv6")) e21 = e:option(Value, "ban_fetchparm", translate("Download Options"),
e21:value("REJECT") translate("Special options for the selected download utility, e.g. '--timeout=20 --no-check-certificate -O'."))
e21:value("DROP")
e21.default = "REJECT"
e21.optional = true e21.optional = true
e22 = e:option(Value, "ban_wan_input_chain", translate("WAN Input Chain IPv4"))
e22.default = "input_wan_rule"
e22.datatype = "uciname"
e22.optional = true
e23 = e:option(Value, "ban_wan_forward_chain", translate("WAN Forward Chain IPv4"))
e23.default = "forwarding_wan_rule"
e23.datatype = "uciname"
e23.optional = true
e24 = e:option(Value, "ban_lan_input_chain", translate("LAN Input Chain IPv4"))
e24.default = "input_lan_rule"
e24.datatype = "uciname"
e24.optional = true
e25 = e:option(Value, "ban_lan_forward_chain", translate("LAN Forward Chain IPv4"))
e25.default = "forwarding_lan_rule"
e25.datatype = "uciname"
e25.optional = true
e26 = e:option(ListValue, "ban_target_src", translate("SRC Target IPv4"))
e26:value("REJECT")
e26:value("DROP")
e26.default = "DROP"
e26.optional = true
e27 = e:option(ListValue, "ban_target_dst", translate("DST Target IPv4"))
e27:value("REJECT")
e27:value("DROP")
e27.default = "REJECT"
e27.optional = true
e28 = e:option(Value, "ban_wan_input_chain_6", translate("WAN Input Chain IPv6"))
e28.default = "input_wan_rule"
e28.datatype = "uciname"
e28.optional = true
e29 = e:option(Value, "ban_wan_forward_chain_6", translate("WAN Forward Chain IPv6"))
e29.default = "forwarding_wan_rule"
e29.datatype = "uciname"
e29.optional = true
e30 = e:option(Value, "ban_lan_input_chain_6", translate("LAN Input Chain IPv6"))
e30.default = "input_lan_rule"
e30.datatype = "uciname"
e30.optional = true
e31 = e:option(Value, "ban_lan_forward_chain_6", translate("LAN Forward Chain IPv6"))
e31.default = "forwarding_lan_rule"
e31.datatype = "uciname"
e31.optional = true
e32 = e:option(ListValue, "ban_target_src_6", translate("SRC Target IPv6"))
e32:value("REJECT")
e32:value("DROP")
e32.default = "DROP"
e32.optional = true
e33 = e:option(ListValue, "ban_target_dst_6", translate("DST Target IPv6"))
e33:value("REJECT")
e33:value("DROP")
e33.default = "REJECT"
e33.optional = true
return m return m

View file

@ -1,5 +1,5 @@
<%# <%#
Copyright 2018 Dirk Brenken (dev@brenken.org) Copyright 2018-2019 Dirk Brenken (dev@brenken.org)
This is free software, licensed under the Apache License, Version 2.0 This is free software, licensed under the Apache License, Version 2.0
-%> -%>
@ -13,8 +13,8 @@ This is free software, licensed under the Apache License, Version 2.0
var view = document.getElementById("value_1"); var view = document.getElementById("value_1");
var input = json.data.status; var input = json.data.status;
btn1.value = "<%:Refresh%>"; btn1.value = "<%:Reload%>";
btn1.name = "do_refresh"; btn1.name = "do_reload";
view.innerHTML = input || "-"; view.innerHTML = input || "-";
if (input != "running") if (input != "running")
{ {
@ -121,9 +121,9 @@ function btn_action(action)
</div> </div>
<hr /> <hr />
<div class="cbi-value" id="button_1"> <div class="cbi-value" id="button_1">
<label class="cbi-value-title" for="button_1"><%:Refresh IPSets%></label> <label class="cbi-value-title" for="button_1"><%:Reload IPSets%></label>
<div class="cbi-value-field"> <div class="cbi-value-field">
<input class="cbi-button cbi-button-apply" id="btn1" type="button" name="do_refresh" value="<%:Refresh%>" onclick="btn_action(this)" /> <input class="cbi-button cbi-button-apply" id="btn1" type="button" name="do_reload" value="<%:Reload%>" onclick="btn_action(this)" />
<span id="btn1_running" class="btn_running"></span> <span id="btn1_running" class="btn_running"></span>
</div> </div>
</div> </div>