增加sql的waf功能
This commit is contained in:
77
resty/core/worker.lua
Normal file
77
resty/core/worker.lua
Normal file
@@ -0,0 +1,77 @@
|
||||
-- Copyright (C) Yichun Zhang (agentzh)
|
||||
|
||||
|
||||
local ffi = require "ffi"
|
||||
local base = require "resty.core.base"
|
||||
|
||||
|
||||
local C = ffi.C
|
||||
local new_tab = base.new_tab
|
||||
local subsystem = ngx.config.subsystem
|
||||
|
||||
|
||||
local ngx_lua_ffi_worker_id
|
||||
local ngx_lua_ffi_worker_pid
|
||||
local ngx_lua_ffi_worker_count
|
||||
local ngx_lua_ffi_worker_exiting
|
||||
|
||||
|
||||
ngx.worker = new_tab(0, 4)
|
||||
|
||||
|
||||
if subsystem == "http" then
|
||||
ffi.cdef[[
|
||||
int ngx_http_lua_ffi_worker_id(void);
|
||||
int ngx_http_lua_ffi_worker_pid(void);
|
||||
int ngx_http_lua_ffi_worker_count(void);
|
||||
int ngx_http_lua_ffi_worker_exiting(void);
|
||||
]]
|
||||
|
||||
ngx_lua_ffi_worker_id = C.ngx_http_lua_ffi_worker_id
|
||||
ngx_lua_ffi_worker_pid = C.ngx_http_lua_ffi_worker_pid
|
||||
ngx_lua_ffi_worker_count = C.ngx_http_lua_ffi_worker_count
|
||||
ngx_lua_ffi_worker_exiting = C.ngx_http_lua_ffi_worker_exiting
|
||||
|
||||
elseif subsystem == "stream" then
|
||||
ffi.cdef[[
|
||||
int ngx_stream_lua_ffi_worker_id(void);
|
||||
int ngx_stream_lua_ffi_worker_pid(void);
|
||||
int ngx_stream_lua_ffi_worker_count(void);
|
||||
int ngx_stream_lua_ffi_worker_exiting(void);
|
||||
]]
|
||||
|
||||
ngx_lua_ffi_worker_id = C.ngx_stream_lua_ffi_worker_id
|
||||
ngx_lua_ffi_worker_pid = C.ngx_stream_lua_ffi_worker_pid
|
||||
ngx_lua_ffi_worker_count = C.ngx_stream_lua_ffi_worker_count
|
||||
ngx_lua_ffi_worker_exiting = C.ngx_stream_lua_ffi_worker_exiting
|
||||
end
|
||||
|
||||
|
||||
function ngx.worker.exiting()
|
||||
return ngx_lua_ffi_worker_exiting() ~= 0
|
||||
end
|
||||
|
||||
|
||||
function ngx.worker.pid()
|
||||
return ngx_lua_ffi_worker_pid()
|
||||
end
|
||||
|
||||
|
||||
function ngx.worker.id()
|
||||
local id = ngx_lua_ffi_worker_id()
|
||||
if id < 0 then
|
||||
return nil
|
||||
end
|
||||
|
||||
return id
|
||||
end
|
||||
|
||||
|
||||
function ngx.worker.count()
|
||||
return ngx_lua_ffi_worker_count()
|
||||
end
|
||||
|
||||
|
||||
return {
|
||||
_VERSION = base.version
|
||||
}
|
||||
Reference in New Issue
Block a user