$90 GRAYBYTE WORDPRESS FILE MANAGER $16

SERVER : vnpttt-amd7f72-h1.vietnix.vn #1 SMP Fri May 24 12:42:50 UTC 2024
SERVER IP : 103.200.23.149 | ADMIN IP 216.73.216.22
OPTIONS : CRL = ON | WGT = ON | SDO = OFF | PKEX = OFF
DEACTIVATED : NONE

/opt/imunify360-webshield/lualib/resty/core/

HOME
Current File : /opt/imunify360-webshield/lualib/resty/core//param.lua
-- 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

Current_dir [ NOT WRITEABLE ] Document_root [ WRITEABLE ]


[ Back ]
NAME
SIZE
LAST TOUCH
USER
CAN-I?
FUNCTIONS
..
--
16 Dec 2025 10.11 AM
root / root
0755
base.lua
5.396 KB
26 Nov 2025 10.43 PM
root / root
0644
base64.lua
3.057 KB
26 Nov 2025 10.43 PM
root / root
0644
coroutine.lua
0.751 KB
26 Nov 2025 10.43 PM
root / root
0644
ctx.lua
3.707 KB
26 Nov 2025 10.43 PM
root / root
0644
exit.lua
1.411 KB
26 Nov 2025 10.43 PM
root / root
0644
hash.lua
3.915 KB
26 Nov 2025 10.43 PM
root / root
0644
misc.lua
5.704 KB
26 Nov 2025 10.43 PM
root / root
0644
ndk.lua
2.128 KB
26 Nov 2025 10.43 PM
root / root
0644
param.lua
2.346 KB
26 Nov 2025 10.43 PM
root / root
0644
phase.lua
1.478 KB
26 Nov 2025 10.43 PM
root / root
0644
regex.lua
34.613 KB
26 Nov 2025 10.43 PM
root / root
0644
request.lua
11.139 KB
26 Nov 2025 10.43 PM
root / root
0644
response.lua
6.212 KB
26 Nov 2025 10.43 PM
root / root
0644
shdict.lua
26.563 KB
26 Nov 2025 10.43 PM
root / root
0644
socket.lua
7.221 KB
26 Nov 2025 10.43 PM
root / root
0644
time.lua
4.639 KB
26 Nov 2025 10.43 PM
root / root
0644
uri.lua
3.025 KB
26 Nov 2025 10.43 PM
root / root
0644
utils.lua
0.949 KB
26 Nov 2025 10.43 PM
root / root
0644
var.lua
3.817 KB
26 Nov 2025 10.43 PM
root / root
0644
worker.lua
3.412 KB
26 Nov 2025 10.43 PM
root / root
0644

GRAYBYTE WORDPRESS FILE MANAGER @ 2026 CONTACT ME
Static GIF