AlinsRan commented on code in PR #12029:
URL: https://github.com/apache/apisix/pull/12029#discussion_r2002543952
##########
apisix/plugins/chaitin-waf.lua:
##########
@@ -224,33 +242,37 @@ end
local function check_match(conf, ctx)
- local match_passed = true
+ if not conf.match or #conf.match == 0 then
+ return true
+ end
- if conf.match then
- for _, match in ipairs(conf.match) do
- -- todo: use lrucache to cache the result
- local exp, err = expr.new(match.vars)
- if err then
- local msg = "failed to create match expression for " ..
+ for _, match in ipairs(conf.match) do
+ local cache_key = core.json.encode(match.vars)
Review Comment:
I think using the index or address(match.vars) of an array as the cache_key
would be better.
* ctx.conf_id .. # .. i
* tostring(match.vars)
##########
apisix/plugins/chaitin-waf.lua:
##########
@@ -224,33 +242,37 @@ end
local function check_match(conf, ctx)
- local match_passed = true
+ if not conf.match or #conf.match == 0 then
+ return true
+ end
- if conf.match then
- for _, match in ipairs(conf.match) do
- -- todo: use lrucache to cache the result
- local exp, err = expr.new(match.vars)
- if err then
- local msg = "failed to create match expression for " ..
+ for _, match in ipairs(conf.match) do
+ local cache_key = core.json.encode(match.vars)
+
+ local exp, err = lrucache(cache_key, nil, function()
+ return expr.new(match.vars)
+ end)
Review Comment:
```suggestion
local exp, err = lrucache(cache_key, nil, function(vars)
return expr.new(vars)
end, match.vars)
```
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]