⚝
One Hat Cyber Team
⚝
Your IP:
216.73.216.124
Server IP:
50.28.103.30
Server:
Linux host.jcukjv-lwsites.com 4.18.0-553.22.1.el8_10.x86_64 #1 SMP Tue Sep 24 05:16:59 EDT 2024 x86_64
Server Software:
nginx/1.28.0
PHP Version:
8.3.12
Buat File
|
Buat Folder
Eksekusi
Dir :
~
/
proc
/
self
/
root
/
www
/
server
/
nginx
/
lib
/
lua
/
ngx
/
View File Name :
process.lua
-- Copyright (C) Yichun Zhang (agentzh) local base = require "resty.core.base" base.allows_subsystem('http', 'stream') local ffi = require 'ffi' local errmsg = base.get_errmsg_ptr() local FFI_ERROR = base.FFI_ERROR local ffi_str = ffi.string local tonumber = tonumber local subsystem = ngx.config.subsystem if subsystem == 'http' then require "resty.core.phase" -- for ngx.get_phase end local ngx_phase = ngx.get_phase local process_type_names = { [0 ] = "single", [1 ] = "master", [2 ] = "signaller", [3 ] = "worker", [4 ] = "helper", [99] = "privileged agent", } local C = ffi.C local _M = { version = base.version } local ngx_lua_ffi_enable_privileged_agent local ngx_lua_ffi_get_process_type local ngx_lua_ffi_process_signal_graceful_exit local ngx_lua_ffi_master_pid if subsystem == 'http' then ffi.cdef[[ int ngx_http_lua_ffi_enable_privileged_agent(char **err, unsigned int connections); int ngx_http_lua_ffi_get_process_type(void); void ngx_http_lua_ffi_process_signal_graceful_exit(void); int ngx_http_lua_ffi_master_pid(void); ]] ngx_lua_ffi_enable_privileged_agent = C.ngx_http_lua_ffi_enable_privileged_agent ngx_lua_ffi_get_process_type = C.ngx_http_lua_ffi_get_process_type ngx_lua_ffi_process_signal_graceful_exit = C.ngx_http_lua_ffi_process_signal_graceful_exit ngx_lua_ffi_master_pid = C.ngx_http_lua_ffi_master_pid else ffi.cdef[[ int ngx_stream_lua_ffi_enable_privileged_agent(char **err, unsigned int connections); int ngx_stream_lua_ffi_get_process_type(void); void ngx_stream_lua_ffi_process_signal_graceful_exit(void); int ngx_stream_lua_ffi_master_pid(void); ]] ngx_lua_ffi_enable_privileged_agent = C.ngx_stream_lua_ffi_enable_privileged_agent ngx_lua_ffi_get_process_type = C.ngx_stream_lua_ffi_get_process_type ngx_lua_ffi_process_signal_graceful_exit = C.ngx_stream_lua_ffi_process_signal_graceful_exit ngx_lua_ffi_master_pid = C.ngx_stream_lua_ffi_master_pid end function _M.type() local typ = ngx_lua_ffi_get_process_type() return process_type_names[tonumber(typ)] end function _M.enable_privileged_agent(connections) if ngx_phase() ~= "init" then return nil, "API disabled in the current context" end connections = connections or 512 if type(connections) ~= "number" or connections < 0 then return nil, "bad 'connections' argument: " .. "number expected and greater than 0" end local rc = ngx_lua_ffi_enable_privileged_agent(errmsg, connections) if rc == FFI_ERROR then return nil, ffi_str(errmsg[0]) end return true end function _M.signal_graceful_exit() ngx_lua_ffi_process_signal_graceful_exit() end function _M.get_master_pid() local pid = ngx_lua_ffi_master_pid() if pid == FFI_ERROR then return nil end return tonumber(pid) end return _M