mirror of
https://github.com/bunkerity/bunkerized-nginx
synced 2023-12-13 21:30:18 +01:00
fix redis not contacted in subsequent phases and reflect changes on stream configs
This commit is contained in:
parent
1624c4e766
commit
5adec84d5a
|
@ -148,7 +148,6 @@ end
|
||||||
helpers.fill_ctx = function()
|
helpers.fill_ctx = function()
|
||||||
-- Return errors as table
|
-- Return errors as table
|
||||||
local errors = {}
|
local errors = {}
|
||||||
local use_redis = nil
|
|
||||||
-- Check if ctx is already filled
|
-- Check if ctx is already filled
|
||||||
if not ngx.ctx.bw then
|
if not ngx.ctx.bw then
|
||||||
-- Instantiate bw table
|
-- Instantiate bw table
|
||||||
|
@ -180,15 +179,14 @@ helpers.fill_ctx = function()
|
||||||
-- Misc info
|
-- Misc info
|
||||||
data.integration = utils.get_integration()
|
data.integration = utils.get_integration()
|
||||||
data.version = utils.get_version()
|
data.version = utils.get_version()
|
||||||
-- Common objects
|
|
||||||
use_redis, err = utils.get_variable("USE_REDIS", false)
|
|
||||||
if not use_redis then
|
|
||||||
table.insert(errors, "can't get variable from datastore : " .. err)
|
|
||||||
end
|
|
||||||
-- Fill ctx
|
-- Fill ctx
|
||||||
ngx.ctx.bw = data
|
ngx.ctx.bw = data
|
||||||
end
|
end
|
||||||
-- Always create new objects for current phases in case of cosockets
|
-- Always create new objects for current phases in case of cosockets
|
||||||
|
local use_redis, err = utils.get_variable("USE_REDIS", false)
|
||||||
|
if not use_redis then
|
||||||
|
table.insert(errors, "can't get variable from datastore : " .. err)
|
||||||
|
end
|
||||||
ngx.ctx.bw.datastore = require "bunkerweb.datastore":new()
|
ngx.ctx.bw.datastore = require "bunkerweb.datastore":new()
|
||||||
ngx.ctx.bw.clusterstore = require "bunkerweb.clusterstore":new()
|
ngx.ctx.bw.clusterstore = require "bunkerweb.clusterstore":new()
|
||||||
ngx.ctx.bw.cachestore = require "bunkerweb.cachestore":new(use_redis == "yes")
|
ngx.ctx.bw.cachestore = require "bunkerweb.cachestore":new(use_redis == "yes")
|
||||||
|
|
|
@ -66,10 +66,6 @@ server {
|
||||||
local order, err = datastore:get("plugins_order")
|
local order, err = datastore:get("plugins_order")
|
||||||
if not order then
|
if not order then
|
||||||
logger:log(ngx.ERR, "can't get plugins order from datastore : " .. err)
|
logger:log(ngx.ERR, "can't get plugins order from datastore : " .. err)
|
||||||
local ok, err = lock:unlock()
|
|
||||||
if not ok then
|
|
||||||
logger:log(ngx.ERR, "lock:unlock() failed : " .. err)
|
|
||||||
end
|
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
order = cjson.decode(order)
|
order = cjson.decode(order)
|
||||||
|
|
|
@ -1,158 +1,157 @@
|
||||||
init_by_lua_block {
|
init_by_lua_block {
|
||||||
|
|
||||||
local class = require "middleclass"
|
local class = require "middleclass"
|
||||||
local clogger = require "bunkerweb.logger"
|
local clogger = require "bunkerweb.logger"
|
||||||
local helpers = require "bunkerweb.helpers"
|
local helpers = require "bunkerweb.helpers"
|
||||||
local cdatastore = require "bunkerweb.datastore"
|
local cdatastore = require "bunkerweb.datastore"
|
||||||
local cjson = require "cjson"
|
local cjson = require "cjson"
|
||||||
|
|
||||||
-- Start init phase
|
-- Start init phase
|
||||||
local logger = clogger:new("INIT-STREAM")
|
local logger = clogger:new("INIT")
|
||||||
local datastore = cdatastore:new()
|
local datastore = cdatastore:new()
|
||||||
logger:log(ngx.NOTICE, "init-stream phase started")
|
logger:log(ngx.NOTICE, "init-stream phase started")
|
||||||
|
|
||||||
-- Purge cache
|
-- Remove previous data from the datastore
|
||||||
local cachestore = require "bunkerweb.cachestore":new()
|
logger:log(ngx.NOTICE, "deleting old keys from datastore ...")
|
||||||
local ok, err = cachestore:purge()
|
local data_keys = {"^plugin", "^variable_", "^api_", "^misc_"}
|
||||||
|
for i, key in pairs(data_keys) do
|
||||||
|
local ok, err = datastore:delete_all(key)
|
||||||
if not ok then
|
if not ok then
|
||||||
logger:log(ngx.ERR, "can't purge cachestore : " .. err)
|
logger:log(ngx.ERR, "can't delete " .. key .. " from datastore : " .. err)
|
||||||
end
|
|
||||||
|
|
||||||
-- Remove previous data from the datastore
|
|
||||||
logger:log(ngx.NOTICE, "deleting old keys from datastore ...")
|
|
||||||
local data_keys = {"^plugin_", "^variable_", "^plugins$", "^api_", "^misc_"}
|
|
||||||
for i, key in pairs(data_keys) do
|
|
||||||
local ok, err = datastore:delete_all(key)
|
|
||||||
if not ok then
|
|
||||||
logger:log(ngx.ERR, "can't delete " .. key .. " from datastore : " .. err)
|
|
||||||
return false
|
|
||||||
end
|
|
||||||
logger:log(ngx.INFO, "deleted " .. key .. " from datastore")
|
|
||||||
end
|
|
||||||
logger:log(ngx.NOTICE, "deleted old keys from datastore")
|
|
||||||
|
|
||||||
-- Load variables into the datastore
|
|
||||||
logger:log(ngx.NOTICE, "saving variables into datastore ...")
|
|
||||||
local file = io.open("/etc/nginx/variables.env")
|
|
||||||
if not file then
|
|
||||||
logger:log(ngx.ERR, "can't open /etc/nginx/variables.env file")
|
|
||||||
return false
|
return false
|
||||||
end
|
end
|
||||||
file:close()
|
logger:log(ngx.INFO, "deleted " .. key .. " from datastore")
|
||||||
for line in io.lines("/etc/nginx/variables.env") do
|
end
|
||||||
local variable, value = line:match("^([^=]+)=(.*)$")
|
logger:log(ngx.NOTICE, "deleted old keys from datastore")
|
||||||
local ok, err = datastore:set("variable_" .. variable, value)
|
|
||||||
if not ok then
|
-- Load variables into the datastore
|
||||||
logger:log(ngx.ERR, "can't save variable " .. variable .. " into datastore : " .. err)
|
logger:log(ngx.NOTICE, "saving variables into datastore ...")
|
||||||
return false
|
local file = io.open("/etc/nginx/variables.env")
|
||||||
end
|
if not file then
|
||||||
logger:log(ngx.INFO, "saved variable " .. variable .. "=" .. value .. " into datastore")
|
logger:log(ngx.ERR, "can't open /etc/nginx/variables.env file")
|
||||||
|
return false
|
||||||
|
end
|
||||||
|
file:close()
|
||||||
|
for line in io.lines("/etc/nginx/variables.env") do
|
||||||
|
local variable, value = line:match("^([^=]+)=(.*)$")
|
||||||
|
local ok, err = datastore:set("variable_" .. variable, value)
|
||||||
|
if not ok then
|
||||||
|
logger:log(ngx.ERR, "can't save variable " .. variable .. " into datastore : " .. err)
|
||||||
|
return false
|
||||||
end
|
end
|
||||||
logger:log(ngx.NOTICE, "saved variables into datastore")
|
logger:log(ngx.INFO, "saved variable " .. variable .. "=" .. value .. " into datastore")
|
||||||
|
end
|
||||||
-- Set API values into the datastore
|
logger:log(ngx.NOTICE, "saved variables into datastore")
|
||||||
logger:log(ngx.NOTICE, "saving API values into datastore ...")
|
|
||||||
local value, err = datastore:get("variable_USE_API")
|
-- Purge cache
|
||||||
|
local cachestore = require "bunkerweb.cachestore":new(false, true)
|
||||||
|
local ok, err = cachestore:purge()
|
||||||
|
if not ok then
|
||||||
|
logger:log(ngx.ERR, "can't purge cachestore : " .. err)
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Set API values into the datastore
|
||||||
|
logger:log(ngx.NOTICE, "saving API values into datastore ...")
|
||||||
|
local value, err = datastore:get("variable_USE_API")
|
||||||
|
if not value then
|
||||||
|
logger:log(ngx.ERR, "can't get variable USE_API from the datastore : " .. err)
|
||||||
|
return false
|
||||||
|
end
|
||||||
|
if value == "yes" then
|
||||||
|
local value, err = datastore:get("variable_API_WHITELIST_IP")
|
||||||
if not value then
|
if not value then
|
||||||
logger:log(ngx.ERR, "can't get variable USE_API from the datastore : " .. err)
|
logger:log(ngx.ERR, "can't get variable API_WHITELIST_IP from the datastore : " .. err)
|
||||||
return false
|
return false
|
||||||
end
|
end
|
||||||
if value == "yes" then
|
local whitelists = {}
|
||||||
local value, err = datastore:get("variable_API_WHITELIST_IP")
|
for whitelist in value:gmatch("%S+") do
|
||||||
if not value then
|
table.insert(whitelists, whitelist)
|
||||||
logger:log(ngx.ERR, "can't get variable API_WHITELIST_IP from the datastore : " .. err)
|
end
|
||||||
return false
|
local ok, err = datastore:set("api_whitelist_ip", cjson.encode(whitelists))
|
||||||
end
|
if not ok then
|
||||||
local whitelists = {}
|
logger:log(ngx.ERR, "can't save API whitelist_ip to datastore : " .. err)
|
||||||
for whitelist in value:gmatch("%S+") do
|
return false
|
||||||
table.insert(whitelists, whitelist)
|
end
|
||||||
end
|
logger:log(ngx.INFO, "saved API whitelist_ip into datastore")
|
||||||
local ok, err = datastore:set("api_whitelist_ip", cjson.encode(whitelists))
|
end
|
||||||
|
logger:log(ngx.NOTICE, "saved API values into datastore")
|
||||||
|
|
||||||
|
-- Load plugins into the datastore
|
||||||
|
logger:log(ngx.NOTICE, "saving plugins into datastore ...")
|
||||||
|
local plugins = {}
|
||||||
|
local plugin_paths = {"/usr/share/bunkerweb/core", "/etc/bunkerweb/plugins"}
|
||||||
|
for i, plugin_path in ipairs(plugin_paths) do
|
||||||
|
local paths = io.popen("find -L " .. plugin_path .. " -maxdepth 1 -type d ! -path " .. plugin_path)
|
||||||
|
for path in paths:lines() do
|
||||||
|
local ok, plugin = helpers.load_plugin(path .. "/plugin.json")
|
||||||
if not ok then
|
if not ok then
|
||||||
logger:log(ngx.ERR, "can't save API whitelist_ip to datastore : " .. err)
|
logger:log(ngx.ERR, plugin)
|
||||||
return false
|
|
||||||
end
|
|
||||||
logger:log(ngx.INFO, "saved API whitelist_ip into datastore")
|
|
||||||
end
|
|
||||||
logger:log(ngx.NOTICE, "saved API values into datastore")
|
|
||||||
|
|
||||||
-- Load plugins into the datastore
|
|
||||||
logger:log(ngx.NOTICE, "saving plugins into datastore ...")
|
|
||||||
local plugins = {}
|
|
||||||
local plugin_paths = {"/usr/share/bunkerweb/core", "/etc/bunkerweb/plugins"}
|
|
||||||
for i, plugin_path in ipairs(plugin_paths) do
|
|
||||||
local paths = io.popen("find -L " .. plugin_path .. " -maxdepth 1 -type d ! -path " .. plugin_path)
|
|
||||||
for path in paths:lines() do
|
|
||||||
local ok, plugin = helpers.load_plugin(path .. "/plugin.json")
|
|
||||||
if not ok then
|
|
||||||
logger:log(ngx.ERR, plugin)
|
|
||||||
else
|
|
||||||
local ok, err = datastore:set("plugin_" .. plugin.id, cjson.encode(plugin))
|
|
||||||
if not ok then
|
|
||||||
logger:log(ngx.ERR, "can't save " .. plugin.id .. " into datastore : " .. err)
|
|
||||||
else
|
|
||||||
table.insert(plugins, plugin)
|
|
||||||
logger:log(ngx.NOTICE, "loaded plugin " .. plugin.id .. " v" .. plugin.version)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
local ok, err = datastore:set("plugins", cjson.encode(plugins))
|
|
||||||
if not ok then
|
|
||||||
logger:log(ngx.ERR, "can't save plugins into datastore : " .. err)
|
|
||||||
return false
|
|
||||||
end
|
|
||||||
|
|
||||||
logger:log(ngx.NOTICE, "saving plugins order into datastore ...")
|
|
||||||
local ok, order = helpers.order_plugins(plugins)
|
|
||||||
if not ok then
|
|
||||||
logger:log(ngx.ERR, "can't compute plugins order : " .. err)
|
|
||||||
return false
|
|
||||||
end
|
|
||||||
for phase, id_list in pairs(order) do
|
|
||||||
logger:log(ngx.NOTICE, "plugins order for phase " .. phase .. " : " .. cjson.encode(id_list))
|
|
||||||
end
|
|
||||||
local ok, err = datastore:set("plugins_order", cjson.encode(order))
|
|
||||||
if not ok then
|
|
||||||
logger:log(ngx.ERR, "can't save plugins order into datastore : " .. err)
|
|
||||||
return false
|
|
||||||
end
|
|
||||||
logger:log(ngx.NOTICE, "saved plugins order into datastore")
|
|
||||||
|
|
||||||
-- Call init() method
|
|
||||||
logger:log(ngx.NOTICE, "calling init() methods of plugins ...")
|
|
||||||
for i, plugin_id in ipairs(order["init"]) do
|
|
||||||
-- Require call
|
|
||||||
local plugin_lua, err = helpers.require_plugin(plugin_id)
|
|
||||||
if plugin_lua == false then
|
|
||||||
logger:log(ngx.ERR, err)
|
|
||||||
elseif plugin_lua == nil then
|
|
||||||
logger:log(ngx.NOTICE, err)
|
|
||||||
else
|
else
|
||||||
-- Check if plugin has init method
|
local ok, err = datastore:set("plugin_" .. plugin.id, cjson.encode(plugin))
|
||||||
if plugin_lua.init ~= nil then
|
if not ok then
|
||||||
-- New call
|
logger:log(ngx.ERR, "can't save " .. plugin.id .. " into datastore : " .. err)
|
||||||
local ok, plugin_obj = helpers.new_plugin(plugin_lua)
|
|
||||||
if not ok then
|
|
||||||
logger:log(ngx.ERR, plugin_obj)
|
|
||||||
else
|
|
||||||
local ok, ret = helpers.call_plugin(plugin_obj, "init")
|
|
||||||
if not ok then
|
|
||||||
logger:log(ngx.ERR, ret)
|
|
||||||
elseif not ret.ret then
|
|
||||||
logger:log(ngx.ERR, plugin_id .. ":init() call failed : " .. ret.msg)
|
|
||||||
else
|
|
||||||
logger:log(ngx.NOTICE, plugin_id .. ":init() call successful : " .. ret.msg)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
else
|
else
|
||||||
logger:log(ngx.NOTICE, "skipped execution of " .. plugin.id .. " because method init() is not defined")
|
table.insert(plugins, plugin)
|
||||||
|
logger:log(ngx.NOTICE, "loaded plugin " .. plugin.id .. " v" .. plugin.version)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
logger:log(ngx.NOTICE, "called init() methods of plugins")
|
end
|
||||||
|
local ok, err = datastore:set("plugins", cjson.encode(plugins))
|
||||||
logger:log(ngx.NOTICE, "init-stream phase ended")
|
if not ok then
|
||||||
|
logger:log(ngx.ERR, "can't save plugins into datastore : " .. err)
|
||||||
}
|
return false
|
||||||
|
end
|
||||||
|
|
||||||
|
logger:log(ngx.NOTICE, "saving plugins order into datastore ...")
|
||||||
|
local ok, order = helpers.order_plugins(plugins)
|
||||||
|
if not ok then
|
||||||
|
logger:log(ngx.ERR, "can't compute plugins order : " .. err)
|
||||||
|
return false
|
||||||
|
end
|
||||||
|
for phase, id_list in pairs(order) do
|
||||||
|
logger:log(ngx.NOTICE, "plugins order for phase " .. phase .. " : " .. cjson.encode(id_list))
|
||||||
|
end
|
||||||
|
local ok, err = datastore:set("plugins_order", cjson.encode(order))
|
||||||
|
if not ok then
|
||||||
|
logger:log(ngx.ERR, "can't save plugins order into datastore : " .. err)
|
||||||
|
return false
|
||||||
|
end
|
||||||
|
logger:log(ngx.NOTICE, "saved plugins order into datastore")
|
||||||
|
|
||||||
|
-- Call init() method
|
||||||
|
logger:log(ngx.NOTICE, "calling init() methods of plugins ...")
|
||||||
|
for i, plugin_id in ipairs(order["init"]) do
|
||||||
|
-- Require call
|
||||||
|
local plugin_lua, err = helpers.require_plugin(plugin_id)
|
||||||
|
if plugin_lua == false then
|
||||||
|
logger:log(ngx.ERR, err)
|
||||||
|
elseif plugin_lua == nil then
|
||||||
|
logger:log(ngx.NOTICE, err)
|
||||||
|
else
|
||||||
|
-- Check if plugin has init method
|
||||||
|
if plugin_lua.init ~= nil then
|
||||||
|
-- New call
|
||||||
|
local ok, plugin_obj = helpers.new_plugin(plugin_lua)
|
||||||
|
if not ok then
|
||||||
|
logger:log(ngx.ERR, plugin_obj)
|
||||||
|
else
|
||||||
|
local ok, ret = helpers.call_plugin(plugin_obj, "init")
|
||||||
|
if not ok then
|
||||||
|
logger:log(ngx.ERR, ret)
|
||||||
|
elseif not ret.ret then
|
||||||
|
logger:log(ngx.ERR, plugin_id .. ":init() call failed : " .. ret.msg)
|
||||||
|
else
|
||||||
|
logger:log(ngx.NOTICE, plugin_id .. ":init() call successful : " .. ret.msg)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
else
|
||||||
|
logger:log(ngx.NOTICE, "skipped execution of " .. plugin.id .. " because method init() is not defined")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
logger:log(ngx.NOTICE, "called init() methods of plugins")
|
||||||
|
|
||||||
|
logger:log(ngx.NOTICE, "init-stream phase ended")
|
||||||
|
|
||||||
|
}
|
||||||
|
|
|
@ -46,10 +46,6 @@ end
|
||||||
local order, err = datastore:get("plugins_order")
|
local order, err = datastore:get("plugins_order")
|
||||||
if not order then
|
if not order then
|
||||||
logger:log(ngx.ERR, "can't get plugins order from datastore : " .. err)
|
logger:log(ngx.ERR, "can't get plugins order from datastore : " .. err)
|
||||||
local ok, err = lock:unlock()
|
|
||||||
if not ok then
|
|
||||||
logger:log(ngx.ERR, "lock:unlock() failed : " .. err)
|
|
||||||
end
|
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
order = cjson.decode(order)
|
order = cjson.decode(order)
|
||||||
|
|
|
@ -27,10 +27,6 @@ logger:log(ngx.INFO, "ngx.ctx filled (ret = " .. ret .. ")")
|
||||||
local order, err = datastore:get("plugins_order")
|
local order, err = datastore:get("plugins_order")
|
||||||
if not order then
|
if not order then
|
||||||
logger:log(ngx.ERR, "can't get plugins order from datastore : " .. err)
|
logger:log(ngx.ERR, "can't get plugins order from datastore : " .. err)
|
||||||
local ok, err = lock:unlock()
|
|
||||||
if not ok then
|
|
||||||
logger:log(ngx.ERR, "lock:unlock() failed : " .. err)
|
|
||||||
end
|
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
order = cjson.decode(order)
|
order = cjson.decode(order)
|
||||||
|
|
|
@ -27,10 +27,6 @@ logger:log(ngx.INFO, "ngx.ctx filled (ret = " .. ret .. ")")
|
||||||
local order, err = datastore:get("plugins_order")
|
local order, err = datastore:get("plugins_order")
|
||||||
if not order then
|
if not order then
|
||||||
logger:log(ngx.ERR, "can't get plugins order from datastore : " .. err)
|
logger:log(ngx.ERR, "can't get plugins order from datastore : " .. err)
|
||||||
local ok, err = lock:unlock()
|
|
||||||
if not ok then
|
|
||||||
logger:log(ngx.ERR, "lock:unlock() failed : " .. err)
|
|
||||||
end
|
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
order = cjson.decode(order)
|
order = cjson.decode(order)
|
||||||
|
|
|
@ -42,10 +42,6 @@ logger:log(ngx.INFO, "ngx.ctx filled (ret = " .. ret .. ")")
|
||||||
local order, err = datastore:get("plugins_order")
|
local order, err = datastore:get("plugins_order")
|
||||||
if not order then
|
if not order then
|
||||||
logger:log(ngx.ERR, "can't get plugins order from datastore : " .. err)
|
logger:log(ngx.ERR, "can't get plugins order from datastore : " .. err)
|
||||||
local ok, err = lock:unlock()
|
|
||||||
if not ok then
|
|
||||||
logger:log(ngx.ERR, "lock:unlock() failed : " .. err)
|
|
||||||
end
|
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
order = cjson.decode(order)
|
order = cjson.decode(order)
|
||||||
|
|
|
@ -27,10 +27,6 @@ logger:log(ngx.INFO, "ngx.ctx filled (ret = " .. ret .. ")")
|
||||||
local order, err = datastore:get("plugins_order")
|
local order, err = datastore:get("plugins_order")
|
||||||
if not order then
|
if not order then
|
||||||
logger:log(ngx.ERR, "can't get plugins order from datastore : " .. err)
|
logger:log(ngx.ERR, "can't get plugins order from datastore : " .. err)
|
||||||
local ok, err = lock:unlock()
|
|
||||||
if not ok then
|
|
||||||
logger:log(ngx.ERR, "lock:unlock() failed : " .. err)
|
|
||||||
end
|
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
order = cjson.decode(order)
|
order = cjson.decode(order)
|
||||||
|
@ -45,7 +41,7 @@ for i, plugin_id in ipairs(order.log_stream) do
|
||||||
elseif plugin_lua == nil then
|
elseif plugin_lua == nil then
|
||||||
logger:log(ngx.INFO, err)
|
logger:log(ngx.INFO, err)
|
||||||
else
|
else
|
||||||
-- Check if plugin has log method
|
-- Check if plugin has log_stream method
|
||||||
if plugin_lua.log_stream ~= nil then
|
if plugin_lua.log_stream ~= nil then
|
||||||
-- New call
|
-- New call
|
||||||
local ok, plugin_obj = helpers.new_plugin(plugin_lua)
|
local ok, plugin_obj = helpers.new_plugin(plugin_lua)
|
||||||
|
|
|
@ -77,7 +77,7 @@ for i, plugin_id in ipairs(order.preread) do
|
||||||
if ret.status then
|
if ret.status then
|
||||||
if ret.status == utils.get_deny_status() then
|
if ret.status == utils.get_deny_status() then
|
||||||
ngx.ctx.reason = plugin_id
|
ngx.ctx.reason = plugin_id
|
||||||
logger:log(ngx.WARN, "denied access from " .. plugin_id .. " : " .. ret.msg)
|
logger:log(ngx.WARN, "denied preread from " .. plugin_id .. " : " .. ret.msg)
|
||||||
else
|
else
|
||||||
logger:log(ngx.NOTICE, plugin_id .. " returned status " .. tostring(ret.status) .. " : " .. ret.msg)
|
logger:log(ngx.NOTICE, plugin_id .. " returned status " .. tostring(ret.status) .. " : " .. ret.msg)
|
||||||
end
|
end
|
||||||
|
|
|
@ -169,7 +169,6 @@ function dnsbl:is_in_dnsbl(ip, server)
|
||||||
end
|
end
|
||||||
for i, ip in ipairs(ips) do
|
for i, ip in ipairs(ips) do
|
||||||
if ip:find("^127%.0%.0%.") then
|
if ip:find("^127%.0%.0%.") then
|
||||||
ngx.sleep(5)
|
|
||||||
return true, server
|
return true, server
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in a new issue