From 5704d72cd216ea54b7f335a80aafe360163343c2 Mon Sep 17 00:00:00 2001 From: potatso Date: Tue, 4 Jul 2023 21:03:41 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=9A=B4=E9=9C=B2waf=E5=8F=98=E9=87=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/resty/coraza.lua | 18 +++++++++++------- lib/resty/coraza/coraza.lua | 7 +++++++ 2 files changed, 18 insertions(+), 7 deletions(-) diff --git a/lib/resty/coraza.lua b/lib/resty/coraza.lua index 1e60f5c..dccb847 100644 --- a/lib/resty/coraza.lua +++ b/lib/resty/coraza.lua @@ -18,20 +18,24 @@ local _M = { } function _M.do_init() - _M.waf = coraza.new_waf() + return coraza.new_waf() end -function _M.rules_add_file(file) - return coraza.rules_add_file(_M.waf, file) +function _M.do_free_waf(waf) + return coraza.free_waf(waf) end -function _M.rules_add(directives) - return coraza.rules_add(_M.waf, directives) +function _M.rules_add_file(waf, file) + return coraza.rules_add_file(waf, file) end -function _M.do_access_filter() +function _M.rules_add(waf, directives) + return coraza.rules_add(waf, directives) +end + +function _M.do_access_filter(waf) -- each connection will be created a transaction - local transaction = coraza.new_transaction(_M.waf) + local transaction = coraza.new_transaction(waf) ngx_ctx.transaction = transaction coraza.process_connection(transaction, ngx_var.remote_addr, ngx_var.remote_port, diff --git a/lib/resty/coraza/coraza.lua b/lib/resty/coraza/coraza.lua index cacf3b0..ab307ec 100644 --- a/lib/resty/coraza/coraza.lua +++ b/lib/resty/coraza/coraza.lua @@ -109,6 +109,13 @@ function _M.new_waf() return waf end +function _M.free_waf(waf) + -- extern int coraza_free_waf(coraza_waf_t t); + local waf = coraza.coraza_free_waf(waf) + nlog(debug_fmt("Success to free new waf")) + return waf +end + function _M.rules_add_file(waf, conf_file) -- extern int coraza_rules_add_file(coraza_waf_t w, char* file, char** er); local code = coraza.coraza_rules_add_file(waf, cast_to_c_char(conf_file), err_Ptr)