From: Jo-Philipp Wich Date: Thu, 20 Jan 2011 23:44:41 +0000 (+0000) Subject: applications/luci-qos: list all L7 patterns in all subdirs (#187) X-Git-Tag: 0.11.0~2334 X-Git-Url: https://git.archive.openwrt.org/?p=project%2Fluci.git;a=commitdiff_plain;h=fe1b37a230b4be3aa286889c70371bd713b59ae8 applications/luci-qos: list all L7 patterns in all subdirs (#187) --- diff --git a/applications/luci-qos/luasrc/model/cbi/qos/qos.lua b/applications/luci-qos/luasrc/model/cbi/qos/qos.lua index dcce7f12c..3e4b78173 100644 --- a/applications/luci-qos/luasrc/model/cbi/qos/qos.lua +++ b/applications/luci-qos/luasrc/model/cbi/qos/qos.lua @@ -23,6 +23,7 @@ m = Map("qos", translate("Quality of Service"), s = m:section(TypedSection, "interface", translate("Interfaces")) s.addremove = true s.anonymous = false +s.template = "cbi/tblsection" e = s:option(Flag, "enabled", translate("Enable")) e.rmempty = false @@ -64,14 +65,20 @@ wa.cbi_add_knownips(dsth) l7 = s:option(ListValue, "layer7", translate("Service")) l7.rmempty = true l7:value("", translate("all")) -local pats = fs.glob("/etc/l7-protocols/*/*.pat") + +local pats = io.popen("find /etc/l7-protocols/ -type f -name '*.pat'") if pats then - for f in pats do - f = f:match("([^/]+)%.pat$") - if f then - l7:value(f) + local l + while true do + l = pats:read("*l") + if not l then break end + + l = l:match("([^/]+)%.pat$") + if l then + l7:value(l) end end + pats:close() end p = s:option(Value, "proto", translate("Protocol")) diff --git a/applications/luci-qos/luasrc/model/cbi/qos/qosmini.lua b/applications/luci-qos/luasrc/model/cbi/qos/qosmini.lua index b41208957..fb2298f8e 100644 --- a/applications/luci-qos/luasrc/model/cbi/qos/qosmini.lua +++ b/applications/luci-qos/luasrc/model/cbi/qos/qosmini.lua @@ -50,14 +50,20 @@ wa.cbi_add_knownips(dsth) l7 = s:option(ListValue, "layer7", translate("Service")) l7.rmempty = true l7:value("", translate("all")) -local pats = fs.glob("/etc/l7-protocols/*/*.pat") + +local pats = io.popen("find /etc/l7-protocols/ -type f -name '*.pat'") if pats then - for f in pats do - f = f:match("([^/]+)%.pat$") - if f then - l7:value(f) + local l + while true do + l = pats:read("*l") + if not l then break end + + l = l:match("([^/]+)%.pat$") + if l then + l7:value(l) end end + pats:close() end p = s:option(ListValue, "proto", translate("Protocol"))