36#if APR_HAVE_SYS_TYPES_H
56module AP_MODULE_DECLARE_DATA lua_module;
58#define AP_LUA_HOOK_FIRST (APR_HOOK_FIRST - 1)
59#define AP_LUA_HOOK_LAST (APR_HOOK_LAST + 1)
83#define DEFAULT_LUA_SHMFILE "lua_ivm_shm"
178 const char *bytecode,
180 const char *function,
208 "%s details: scope: %s, file: %s, func: %s",
210 function ? function :
"-");
212 switch (spec->
scope) {
248 for (x=0; x <
srclen; x++) {
249 if (
string[x] ==
'$' && x !=
srclen-1 &&
string[x+1] >=
'0' &&
string[x+1] <=
'9') {
250 int v = *(
string+x+1) -
'0';
262 if (x-
y > 0 &&
y > 0) {
293 "handling [%s] in mod_lua",
r->
filename);
302 0,
"handle",
"request handler");
308 ap_rputs(
"Unable to compile VM, see logs",
r);
316 "lua: Unable to find entry function '%s' in %s (not a valid function)",
378 "lua: Failed to obtain lua interpreter for %s %s",
387 "lua: Unable to find entry function '%s' in %s (not a valid function)",
412 if (
f->frec->providers ==
NULL) {
513 "lua: Error while executing filter: %s",
695 "lua: Failed to obtain lua interpreter for entry function '%s' in %s",
704 "lua: Unable to find entry function '%s' in %s (not a valid function)",
735 "Lua hook %s:%s for phase %s did not return a numeric value",
781 const char *
filename, *function_name;
798 for (
i=0 ;
i < 10;
i++) {
799 if (
match[
i].rm_eo >= 0) {
816 "lua: Failed to obtain Lua interpreter for entry function '%s' in %s",
822 if (function_name !=
NULL) {
826 "lua: Unable to find entry function '%s' in %s (not a valid function)",
855 "lua: Lua handler %s in %s did not return a value, assuming apache2.OK",
879 if (
i &&
buf[
i - 1] ==
'\n')
920static const char *
lf =
921 "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n";
930 if (
ctx->startline) {
938 if (
p[0] ==
'<' &&
p[1] ==
'/') {
940 while (
i < strlen(
ctx->endstr)) {
1005 const char *function =
NULL;
1012 "> directive missing closing '>'",
NULL);
1033 "> 2nd argument must be 'early' or 'late'",
NULL);
1049 cmd->config_file->name,
1050 cmd->config_file->line_number);
1062 ctx.cfp =
cmd->config_file;
1063 ctx.startline =
cmd->config_file->line_number;
1101 (*current)->filename =
cmd->config_file->name;
1102 (*current)->line_num =
cmd->config_file->line_number;
1103 (*current)->directive =
apr_pstrdup(
cmd->pool,
"Lua_____ByteCodeHack");
1104 (*current)->args =
NULL;
1105 (*current)->data =
baton;
1115 const char *function,
1142 const char *function)
1148 return "Invalid regex pattern!";
1164 const char *function,
1284 const char *function)
1299 const char *function,
1317 return "Third argument must be 'early' or 'late'";
1322 file, function, apr_hook_when);
1335 const char *function)
1348 const char *function)
1356 const char *function)
1372 const char *function,
1390 function, apr_hook_when);
1401 const char *function)
1415 const char *function,
1428 return "Third argument must be 'early' or 'late'";
1433 file, function, apr_hook_when);
1445 const char *function,
1458 return "Third argument must be 'early' or 'late'";
1463 function, apr_hook_when);
1474 const char *function)
1476 return "LuaHookInsertFilter not yet implemented";
1480 const char *
file,
const char *function)
1491 const char*
match,
const char *
file,
const char *function)
1498 if (!function) function =
"handle";
1503 const char* filter,
const char *
file,
const char *function)
1510 if (!function) function =
"handle";
1515 const char* filter,
const char *
file,
const char *function)
1522 if (!function) function =
"handle";
1553 "Unable to build full path to file, %s",
arg);
1603 "LuaInherit type of '%s' not recognized, valid "
1604 "options are 'none', 'parent-first', and 'parent-last'",
1626 "LuaCodeCache type of '%s' not recognized, valid "
1627 "options are 'never', 'stat', and 'forever'",
1639 if (
strcmp(
"once", scope) == 0) {
1642 else if (
strcmp(
"request", scope) == 0) {
1645 else if (
strcmp(
"conn", scope) == 0) {
1648 else if (
strcmp(
"thread", scope) == 0) {
1651 "Scope type of '%s' cannot be used because this "
1652 "server does not have threading support "
1653 "(APR_HAS_THREADS)",
1658 else if (
strcmp(
"server", scope) == 0) {
1662 "Scope type of '%s' cannot be used because this "
1663 "server does not have threading support "
1664 "(APR_HAS_THREADS)",
1681 "Invalid value for LuaScope, '%s', acceptable "
1682 "values are: 'once', 'request', 'conn'"
1684 ", 'thread', 'server'"
1721 const char *provider_name;
1766 "Unable to compile VM for authz provider %s",
prov_spec->name);
1772 "Unable to find entry function '%s' in %s (not a valid function)",
1782 "Error: authz provider %s: too many arguments",
prov_spec->name);
1795 "Error executing authz provider %s: %s",
prov_spec->name,
err);
1801 "Error: authz provider %s did not return integer",
prov_spec->name);
1816 "Error: authz provider %s: invalid return value %d",
1829 const char *
name,
const char *
file,
1830 const char *function)
1854 "Specify the base path for resolving relative paths for mod_lua directives"),
1857 "Add a directory to lua's package.path"),
1860 "Add a directory to lua's package.cpath"),
1863 "Provide an authorization provider"),
1867 "Provide a hook for the pre_translate name phase of request processing"),
1871 "Provide a hook for the pre_translate name phase of request processing"),
1875 "Provide a hook for the translate name phase of request processing"),
1880 "Provide a hook for the translate name phase of request processing"),
1883 "Provide a hook for the fixups phase of request processing"),
1886 "Provide a inline hook for the fixups phase of request processing"),
1891 "Provide a hook for the map_to_storage phase of request processing"),
1895 "Provide a hook for the map_to_storage phase of request processing"),
1900 "Provide a hook for the check_user_id phase of request processing"),
1904 "Provide a hook for the check_user_id phase of request processing"),
1909 "Provide a hook for the type_checker phase of request processing"),
1912 "Provide a hook for the type_checker phase of request processing"),
1917 "Provide a hook for the access_checker phase of request processing"),
1921 "Provide a hook for the access_checker phase of request processing"),
1926 "Provide a hook for the auth_checker phase of request processing"),
1929 "Provide a hook for the auth_checker phase of request processing"),
1934 "Provide a hook for the insert_filter phase of request processing"),
1938 "Provide a hook for the logging phase of request processing"),
1941 "One of once, request, conn, server -- default is once"),
1944 "Controls how Lua scripts in parent contexts are merged with the current "
1945 " context: none|parent-last|parent-first (default: parent-first) "),
1948 "Controls the behavior of the in-memory code cache "
1949 " context: stat|forever|never (default: stat) "),
1952 "Provide a hook for the quick handler of request processing"),
1955 "Provide a hook for the quick handler of request processing"),
1958 "(internal) Byte code handler"),
1960 "Maps a path to a lua handler"),
1962 "Registers a Lua function as an output filter"),
1964 "Registers a Lua function as an input filter"),
2049 "mod_lua: Failed to create shared memory segment on file %s",
2106 a->package_cpaths =
overrides->package_cpaths;
2107 a->mapped_handlers=
overrides->mapped_handlers;
2108 a->mapped_filters=
overrides->mapped_filters;
int int const char ** match
const char apr_size_t len
APR-UTIL registration of functions exported by modules.
apr_array_append(apr_pool_t *p, const apr_array_header_t *first, const apr_array_header_t *second)
APR Thread Mutex Routines.
APR Thread and Process Library.
static apr_pool_t * pconf
#define AP_INIT_TAKE123(directive, func, mconfig, where, help)
#define AP_INIT_TAKE1(directive, func, mconfig, where, help)
char * ap_runtime_dir_relative(apr_pool_t *p, const char *fname)
#define ap_get_module_config(v, m)
void ap_hook_post_config(ap_HOOK_post_config_t *pf, const char *const *aszPre, const char *const *aszSucc, int nOrder)
#define AP_DECLARE_MODULE(foo)
void ap_hook_quick_handler(ap_HOOK_quick_handler_t *pf, const char *const *aszPre, const char *const *aszSucc, int nOrder)
#define AP_INIT_RAW_ARGS(directive, func, mconfig, where, help)
void ap_hook_handler(ap_HOOK_handler_t *pf, const char *const *aszPre, const char *const *aszSucc, int nOrder)
#define ap_set_module_config(v, m, val)
void ap_hook_pre_config(ap_HOOK_pre_config_t *pf, const char *const *aszPre, const char *const *aszSucc, int nOrder)
#define AP_INIT_TAKE3(directive, func, mconfig, where, help)
void ap_hook_child_init(ap_HOOK_child_init_t *pf, const char *const *aszPre, const char *const *aszSucc, int nOrder)
#define AP_INIT_TAKE23(directive, func, mconfig, where, help)
#define AP_INIT_TAKE2(directive, func, mconfig, where, help)
#define AP_FILTER_PROTO_CHANGE
void ap_remove_input_filter(ap_filter_t *f)
ap_filter_rec_t * ap_register_output_filter_protocol(const char *name, ap_out_filter_func filter_func, ap_init_filter_func filter_init, ap_filter_type ftype, unsigned int proto_flags)
#define AP_FILTER_PROTO_CHANGE_LENGTH
apr_status_t ap_pass_brigade(ap_filter_t *filter, apr_bucket_brigade *bucket)
apr_status_t ap_filter_rec_t * ap_register_input_filter(const char *name, ap_in_filter_func filter_func, ap_init_filter_func filter_init, ap_filter_type ftype)
apr_status_t ap_get_brigade(ap_filter_t *filter, apr_bucket_brigade *bucket, ap_input_mode_t mode, apr_read_type_e block, apr_off_t readbytes)
void ap_remove_output_filter(ap_filter_t *f)
#define AP_SQ_MS_CREATE_PRE_CONFIG
int ap_state_query(int query_code)
const unsigned char * buf
apr_status_t ap_global_mutex_create(apr_global_mutex_t **mutex, const char **name, const char *type, const char *instance_id, server_rec *server, apr_pool_t *pool, apr_int32_t options)
apr_status_t ap_mutex_register(apr_pool_t *pconf, const char *type, const char *default_dir, apr_lockmech_e default_mech, apr_int32_t options)
void ap_hook_log_transaction(ap_HOOK_log_transaction_t *pf, const char *const *aszPre, const char *const *aszSucc, int nOrder)
static APR_INLINE int ap_rputs(const char *str, request_rec *r)
const char * ap_ssl_var_lookup(apr_pool_t *p, server_rec *s, conn_rec *c, request_rec *r, const char *name)
int ap_ssl_conn_is_ssl(conn_rec *c)
apr_status_t ap_register_auth_provider(apr_pool_t *pool, const char *provider_group, const char *provider_name, const char *provider_version, const void *provider, int type)
#define AP_AUTH_INTERNAL_PER_CONF
void ap_hook_pre_translate_name(ap_HOOK_pre_translate_name_t *pf, const char *const *aszPre, const char *const *aszSucc, int nOrder)
void ap_hook_auth_checker(ap_HOOK_auth_checker_t *pf, const char *const *aszPre, const char *const *aszSucc, int nOrder)
void ap_hook_translate_name(ap_HOOK_translate_name_t *pf, const char *const *aszPre, const char *const *aszSucc, int nOrder)
void ap_hook_check_user_id(ap_HOOK_check_user_id_t *pf, const char *const *aszPre, const char *const *aszSucc, int nOrder)
void ap_hook_map_to_storage(ap_HOOK_map_to_storage_t *pf, const char *const *aszPre, const char *const *aszSucc, int nOrder)
void ap_hook_fixups(ap_HOOK_fixups_t *pf, const char *const *aszPre, const char *const *aszSucc, int nOrder)
void ap_hook_access_checker(ap_HOOK_access_checker_t *pf, const char *const *aszPre, const char *const *aszSucc, int nOrder)
void ap_hook_create_request(ap_HOOK_create_request_t *pf, const char *const *aszPre, const char *const *aszSucc, int nOrder)
void ap_hook_type_checker(ap_HOOK_type_checker_t *pf, const char *const *aszPre, const char *const *aszSucc, int nOrder)
void ap_hook_insert_filter(ap_HOOK_insert_filter_t *pf, const char *const *aszPre, const char *const *aszSucc, int nOrder)
ap_vhost_iterate_conn_cb void * baton
#define APR_STATUS_IS_ENOTIMPL(s)
#define APR_BUCKET_REMOVE(e)
#define APR_BRIGADE_LAST(b)
#define APR_BRIGADE_INSERT_TAIL(b, e)
#define APR_BUCKET_NEXT(e)
#define APR_BRIGADE_EMPTY(b)
#define APR_BRIGADE_SENTINEL(b)
#define apr_bucket_delete(e)
#define APR_BUCKET_IS_EOS(e)
apr_brigade_flush void * ctx
apr_bucket apr_bucket_brigade * a
#define APR_BRIGADE_FIRST(b)
#define apr_bucket_read(e, str, len, block)
apr_pool_t apr_dbd_t int apr_dbd_prepared_t int nargs
const void apr_size_t srclen
#define APR_HOOK_REALLY_FIRST
const char apr_hash_t ** values
#define APR_IMPLEMENT_OPTIONAL_HOOK_RUN_ALL(ns, link, ret, name, args_decl, args_use, ok, decline)
#define APR_OPTIONAL_HOOK(ns, name, pfn, aszPre, aszSucc, nOrder)
#define HTTP_INTERNAL_SERVER_ERROR
#define STANDARD20_MODULE_STUFF
#define ap_strrchr_c(s, c)
#define AP_DEBUG_ASSERT(exp)
#define ap_escape_html(p, s)
void ap_str_tolower(char *s)
char * ap_getword_conf(apr_pool_t *p, const char **line)
const char * ap_check_cmd_context(cmd_parms *cmd, unsigned forbidden)
const char int apr_pool_t * pool
const char apr_file_t * file
#define APR_FILEPATH_NOTRELATIVE
apr_array_header_t ** result
int strcasecmp(const char *a, const char *b)
#define APR_HASH_KEY_STRING
apr_vformatter_buff_t * c
apr_interval_time_t apr_pollcb_cb_t func
#define apr_pool_create(newpool, parent)
#define apr_pcalloc(p, size)
apr_size_t const char * filename
#define APR_ARRAY_PUSH(ary, type)
#define APR_ARRAY_IDX(ary, i, type)
apr_int32_t apr_int32_t apr_int32_t err
apr_size_t apr_size_t max
int ap_lua_init(lua_State *L, apr_pool_t *p)
void ap_lua_load_config_lmodule(lua_State *L)
void ap_lua_push_request(lua_State *L, request_rec *r)
void ap_lua_load_request_lmodule(lua_State *L, apr_pool_t *p)
lua_State * ap_lua_get_lua_state(apr_pool_t *lifecycle_pool, ap_lua_vm_spec *spec, request_rec *r)
void ap_lua_init_mutex(apr_pool_t *pool, server_rec *s)
void ap_lua_load_apache2_lmodule(lua_State *L)
#define AP_LUA_SCOPE_SERVER
#define AP_LUA_SCOPE_UNSET
#define AP_LUA_SCOPE_THREAD
#define AP_LUA_CACHE_UNSET
#define AP_LUA_CACHE_FOREVER
#define AP_LUA_FILTER_OUTPUT
#define AP_LUA_SCOPE_CONN
#define AP_LUA_SCOPE_REQUEST
#define AP_LUA_SCOPE_ONCE
#define AP_LUA_CACHE_NEVER
#define AP_LUA_FILTER_INPUT
#define AP_LUA_CACHE_STAT
Authentication and Authorization Extension for Apache.
#define AUTHZ_PROVIDER_NAME_NOTE
#define AUTHZ_PROVIDER_VERSION
#define AUTHZ_PROVIDER_GROUP
static int lua_auth_checker_harness_first(request_rec *r)
const char * ap_lua_ssl_val(apr_pool_t *p, server_rec *s, conn_rec *c, request_rec *r, const char *var)
static const char * ap_lua_interpolate_string(apr_pool_t *pool, const char *string, const char **values)
static int ldump_writer(lua_State *L, const void *b, size_t size, void *B)
static const char * hack_section_handler(cmd_parms *cmd, void *_cfg, const char *arg)
static const char * lua_authz_parse(cmd_parms *cmd, const char *require_line, const void **parsed_require_line)
static const char * scope_to_string(unsigned int scope)
static const char * register_authz_provider(cmd_parms *cmd, void *_cfg, const char *name, const char *file, const char *function)
static const char * register_auth_checker_block(cmd_parms *cmd, void *_cfg, const char *line)
static const char * register_auth_checker_hook(cmd_parms *cmd, void *_cfg, const char *file, const char *function, const char *when)
static const char * register_pre_trans_name_block(cmd_parms *cmd, void *_cfg, const char *line)
apr_global_mutex_t * lua_ivm_mutex
static int lua_check_user_id_harness(request_rec *r)
int ap_lua_ssl_is_https(conn_rec *c)
static void * create_server_config(apr_pool_t *p, server_rec *s)
static void report_lua_error(lua_State *L, request_rec *r)
static const command_rec lua_commands[]
static const char * register_lua_codecache(cmd_parms *cmd, void *_cfg, const char *arg)
static int lua_access_checker_harness(request_rec *r)
static int lua_pre_trans_name_harness(request_rec *r)
static int lua_request_rec_hook_harness(request_rec *r, const char *name, int apr_hook_when)
static void lua_insert_filter_harness(request_rec *r)
static const char * register_input_filter(cmd_parms *cmd, void *_cfg, const char *filter, const char *file, const char *function)
static int lua_map_handler_fixups(request_rec *r)
int ap_lua_run_lua_request(lua_State *L, request_rec *r)
static void lua_open_callback(lua_State *L, apr_pool_t *p, void *ctx)
static int lua_auth_checker_harness_last(request_rec *r)
static const char * register_named_file_function_hook(const char *name, cmd_parms *cmd, void *_cfg, const char *file, const char *function, int apr_hook_when)
static const char * register_map_to_storage_hook(cmd_parms *cmd, void *_cfg, const char *file, const char *function)
static int lua_auth_checker_harness(request_rec *r)
static const char * register_access_checker_hook(cmd_parms *cmd, void *_cfg, const char *file, const char *function, const char *when)
static int lua_translate_name_harness(request_rec *r)
static void lua_register_hooks(apr_pool_t *p)
static const char * register_type_checker_block(cmd_parms *cmd, void *_cfg, const char *line)
static const char * register_fixups_hook(cmd_parms *cmd, void *_cfg, const char *file, const char *function)
static apr_status_t lua_output_filter_handle(ap_filter_t *f, apr_bucket_brigade *pbbIn)
static const char * register_access_checker_block(cmd_parms *cmd, void *_cfg, const char *line)
static void * create_dir_config(apr_pool_t *p, char *dir)
static const char * register_log_transaction_hook(cmd_parms *cmd, void *_cfg, const char *file, const char *function)
static const char * register_type_checker_hook(cmd_parms *cmd, void *_cfg, const char *file, const char *function)
static const char * register_mapped_file_function_hook(const char *pattern, cmd_parms *cmd, void *_cfg, const char *file, const char *function)
static void * overlay_hook_specs(apr_pool_t *p, const void *key, apr_ssize_t klen, const void *overlay_val, const void *base_val, const void *data)
static const char * register_map_handler(cmd_parms *cmd, void *_cfg, const char *match, const char *file, const char *function)
static int lua_post_config(apr_pool_t *pconf, apr_pool_t *plog, apr_pool_t *ptemp, server_rec *s)
#define AP_LUA_HOOK_FIRST
static int lua_map_to_storage_harness(request_rec *r)
static const char * register_check_user_id_block(cmd_parms *cmd, void *_cfg, const char *line)
static const char * register_lua_scope(cmd_parms *cmd, void *_cfg, const char *scope, const char *min, const char *max)
static void ap_lua_release_state(lua_State *L, ap_lua_vm_spec *spec, request_rec *r)
static const char * register_translate_name_block(cmd_parms *cmd, void *_cfg, const char *line)
static const char * register_insert_filter_hook(cmd_parms *cmd, void *_cfg, const char *file, const char *function)
static ap_lua_vm_spec * create_vm_spec(apr_pool_t **lifecycle_pool, request_rec *r, const ap_lua_dir_cfg *cfg, const ap_lua_server_cfg *server_cfg, const char *filename, const char *bytecode, apr_size_t bytecode_len, const char *function, const char *what)
static int lua_log_transaction_harness(request_rec *r)
static apr_status_t lua_input_filter_handle(ap_filter_t *f, apr_bucket_brigade *pbbOut, ap_input_mode_t eMode, apr_read_type_e eBlock, apr_off_t nBytes)
static int lua_open_hook(lua_State *L, apr_pool_t *p)
static const char * register_quick_hook(cmd_parms *cmd, void *_cfg, const char *file, const char *function)
static apr_size_t config_getstr(ap_configfile_t *cfg, char *buf, size_t bufsiz)
static const char * register_check_user_id_hook(cmd_parms *cmd, void *_cfg, const char *file, const char *function, const char *when)
static void * merge_dir_config(apr_pool_t *p, void *basev, void *overridesv)
static const char * register_pre_trans_name_hook(cmd_parms *cmd, void *_cfg, const char *file, const char *function)
static const char * register_package_cdir(cmd_parms *cmd, void *_cfg, const char *arg)
static const char * register_package_helper(cmd_parms *cmd, const char *arg, apr_array_header_t *dir_array)
static int lua_pre_config(apr_pool_t *pconf, apr_pool_t *plog, apr_pool_t *ptemp)
static const char * register_translate_name_hook(cmd_parms *cmd, void *_cfg, const char *file, const char *function, const char *when)
static int lua_handler(request_rec *r)
static const char * direct_chunkreader(lua_State *lvm, void *udata, size_t *plen)
static int lua_access_checker_harness_last(request_rec *r)
static int lua_quick_harness(request_rec *r, int lookup)
static apr_status_t lua_setup_filter_ctx(ap_filter_t *f, request_rec *r, lua_filter_ctx **c)
static int lua_fixup_harness(request_rec *r)
static const char * register_map_to_storage_block(cmd_parms *cmd, void *_cfg, const char *line)
static int lua_translate_name_harness_first(request_rec *r)
static const authz_provider lua_authz_provider
apr_hash_t * lua_authz_providers
static const char * register_filter_function_hook(const char *filter, cmd_parms *cmd, void *_cfg, const char *file, const char *function, int direction)
static int lua_map_handler(request_rec *r)
static const char * register_lua_root(cmd_parms *cmd, void *_cfg, const char *root)
static authz_status lua_authz_check(request_rec *r, const char *require_line, const void *parsed_require_line)
static int lua_type_checker_harness(request_rec *r)
static apr_status_t shm_cleanup_wrapper(void *unused)
static const char * register_quick_block(cmd_parms *cmd, void *_cfg, const char *line)
static int lua_translate_name_harness_last(request_rec *r)
static const char * register_output_filter(cmd_parms *cmd, void *_cfg, const char *filter, const char *file, const char *function)
#define DEFAULT_LUA_SHMFILE
static const char * register_lua_inherit(cmd_parms *cmd, void *_cfg, const char *arg)
static const char * register_package_dir(cmd_parms *cmd, void *_cfg, const char *arg)
static const char * register_named_block_function_hook(const char *name, cmd_parms *cmd, void *mconfig, const char *line)
static int lua_request_hook(lua_State *L, request_rec *r)
static const char * register_fixups_block(cmd_parms *cmd, void *_cfg, const char *line)
static int create_request_config(request_rec *r)
static int lua_access_checker_harness_first(request_rec *r)
@ AP_LUA_INHERIT_PARENT_LAST
@ AP_LUA_INHERIT_PARENT_FIRST
#define lua_resume(a, b, c)
apr_status_t(* getch)(char *ch, void *param)
apr_status_t(* getstr)(void *buf, apr_size_t bufsiz, void *param)
Structure used to build the config tree.
The representation of a filter chain.
apr_array_header_t * package_paths
apr_array_header_t * package_cpaths
apr_array_header_t * mapped_handlers
apr_array_header_t * mapped_filters
const char * function_name
const char * function_name
apr_hash_t * request_scoped_vms
mapped_request_details * mapped_request_details
apr_array_header_t * package_paths
apr_array_header_t * package_cpaths
ap_lua_state_open_callback cb
Structure to store things which are per connection.
ap_lua_mapped_handler_spec * spec
apr_array_header_t * args
lua_authz_provider_spec * spec
const char * function_name
apr_bucket_brigade * tmpBucket
A structure that represents the current request.
const char * content_type
struct ap_conf_vector_t * request_config
struct ap_conf_vector_t * per_dir_config
apr_table_t * headers_out
A structure to keep track of authorization requirements.
A structure to store information for each virtual server.
struct ap_conf_vector_t * module_config
ap_input_mode_t
input filtering modes
Apache Mutex support library.
static NAMED * lookup(XML_Parser parser, HASH_TABLE *table, KEY name, size_t createSize)