From fe1b37a230b4be3aa286889c70371bd713b59ae8 Mon Sep 17 00:00:00 2001 From: Jo-Philipp Wich Date: Thu, 20 Jan 2011 23:44:41 +0000 Subject: [PATCH] applications/luci-qos: list all L7 patterns in all subdirs (#187) --- .../luci-qos/luasrc/model/cbi/qos/qos.lua | 17 ++++++++++++----- .../luci-qos/luasrc/model/cbi/qos/qosmini.lua | 16 +++++++++++----- 2 files changed, 23 insertions(+), 10 deletions(-) diff --git a/applications/luci-qos/luasrc/model/cbi/qos/qos.lua b/applications/luci-qos/luasrc/model/cbi/qos/qos.lua index dcce7f12c1..3e4b781738 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 b412089571..fb2298f8e7 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")) -- 2.30.2