luci-app-mwan3: Offer loaded ipsets as dropdown for ipset selection 2476/head
authorFlorian Eckert <fe@dev.tdt.de>
Wed, 16 Jan 2019 13:25:38 +0000 (14:25 +0100)
committerFlorian Eckert <fe@dev.tdt.de>
Tue, 22 Jan 2019 13:36:21 +0000 (14:36 +0100)
Signed-off-by: Florian Eckert <fe@dev.tdt.de>
applications/luci-app-mwan3/luasrc/model/cbi/mwan/ruleconfig.lua

index 14f4503658f89ac196e5d514a6e71269b0d8239d..3643e37ec58065f21b8705f3d1c47abf7cdb3aef 100644 (file)
@@ -3,12 +3,15 @@
 -- Licensed to the public under the GNU General Public License v2.
 
 local dsp = require "luci.dispatcher"
+local util   = require("luci.util")
 
 local m, mwan_rule, src_ip, src_port, dest_ip, dest_port, proto, sticky
 local timeout, ipset, logging, policy
 
 arg[1] = arg[1] or ""
 
+local ipsets = util.split(util.trim(util.exec("ipset -n -L 2>/dev/null | grep -v mwan3_ | sort")), "\n", nil, true) or {}
+
 m = Map("mwan3", translatef("MWAN Rule Configuration - %s", arg[1]))
 m.redirect = dsp.build_url("admin", "network", "mwan", "rule")
 
@@ -52,6 +55,9 @@ timeout.datatype = "range(1, 1000000)"
 
 ipset = mwan_rule:option(Value, "ipset", translate("IPset"),
        translate("Name of IPset rule. Requires IPset rule in /etc/dnsmasq.conf (eg \"ipset=/youtube.com/youtube\")"))
+for _, z in ipairs(ipsets) do
+       ipset:value(z)
+end
 
 logging = mwan_rule:option(Flag, "logging", translate("Logging"),
        translate("Enables firewall rule logging (global mwan3 logging must also be enabled)"))