* In this function, modules should call the ap_hook_*() functions to
* register an interest in a specific step in processing the current
* request.
+ * @param p the pool to use for all allocations
* @deffunc void register_hooks(void)
*/
- void (*register_hooks) (void);
+ void (*register_hooks) (apr_pool_t *p);
};
/* Initializer for the first few module slots, which are only
return ret;
}
-static void register_hooks(void)
+static void register_hooks(apr_pool_t *p)
{
ap_hook_access_checker(check_dir_access,NULL,NULL,AP_HOOK_MIDDLE);
}
return HTTP_UNAUTHORIZED;
}
-static void register_hooks(void)
+static void register_hooks(apr_pool_t *p)
{
ap_hook_check_user_id(authenticate_basic_user,NULL,NULL,AP_HOOK_MIDDLE);
ap_hook_auth_checker(check_user_access,NULL,NULL,AP_HOOK_MIDDLE);
#endif
return DECLINED;
}
-static void register_hooks(void)
+
+static void register_hooks(apr_pool_t *p)
{
ap_hook_check_user_id(anon_authenticate_basic_user,NULL,NULL,AP_HOOK_MIDDLE);
ap_hook_auth_checker(check_anon_access,NULL,NULL,AP_HOOK_MIDDLE);
return DECLINED;
}
-static void register_hooks(void)
+static void register_hooks(apr_pool_t *p)
{
ap_hook_check_user_id(db_authenticate_basic_user,NULL,NULL,AP_HOOK_MIDDLE);
ap_hook_auth_checker(db_check_auth,NULL,NULL,AP_HOOK_MIDDLE);
return DECLINED;
}
-static void register_hooks(void)
+static void register_hooks(apr_pool_t *p)
{
ap_hook_check_user_id(dbm_authenticate_basic_user, NULL, NULL, AP_HOOK_MIDDLE);
ap_hook_auth_checker(dbm_check_auth, NULL, NULL, AP_HOOK_MIDDLE);
}
-static void register_hooks(void)
+static void register_hooks(apr_pool_t *p)
{
static const char * const cfgPost[]={ "http_core.c", NULL };
static const char * const parsePre[]={ "mod_proxy.c", NULL };
* support.
*/
HANDLE hFile;
+ /* XXX: This is wrong for unicode FS ... and it doesn't belong in httpd */
hFile = CreateFile(filename, /* pointer to name of the file */
GENERIC_READ, /* access (read-write) mode */
FILE_SHARE_READ, /* share mode */
{NULL}
};
-static void register_hooks(void)
+static void register_hooks(apr_pool_t *p)
{
ap_hook_handler(file_cache_handler, NULL, NULL, AP_HOOK_LAST);
ap_hook_post_config(file_cache_post_config, NULL, NULL, AP_HOOK_MIDDLE);
{ NULL }
};
-static void register_hooks(void)
+static void register_hooks(apr_pool_t *p)
{
ap_hook_gather_propsets(dav_fs_gather_propsets, NULL, NULL,
AP_HOOK_MIDDLE);
ap_hook_insert_all_liveprops(dav_fs_insert_all_liveprops, NULL, NULL,
AP_HOOK_MIDDLE);
- dav_fs_register(NULL /* ### pconf */);
+ dav_fs_register(p);
}
module AP_MODULE_DECLARE_DATA dav_fs_module =
#include "apr_hash.h"
#include "apr_errno.h"
#include "apr_strings.h"
-
-#include "ap_hooks.h" /* ### for ap_global_hook_pool */
#include "util_xml.h" /* for ap_text_header */
-
#include "mod_dav.h"
{
int value;
- /* ### ignore the pool; it is NULL right now */
- p = ap_global_hook_pool;
-
if (dav_liveprop_uris == NULL) {
dav_liveprop_uris = apr_make_hash(p);
apr_register_cleanup(p, NULL, dav_cleanup_liveprops, apr_null_cleanup);
return DECLINED;
}
-static void register_hooks(void)
+static void register_hooks(apr_pool_t *p)
{
ap_hook_handler(dav_handler, NULL, NULL, AP_HOOK_MIDDLE);
ap_hook_post_config(dav_init_handler, NULL, NULL, AP_HOOK_MIDDLE);
ap_hook_insert_all_liveprops(dav_core_insert_all_liveprops,
NULL, NULL, AP_HOOK_MIDDLE);
- /* ### damn. need a pool. */
- dav_core_register_uris(NULL);
+ dav_core_register_uris(p);
}
/*---------------------------------------------------------------------------
#include "apr_pools.h"
#include "apr_hash.h"
-
-#include "ap_hooks.h" /* ### for ap_global_hook_pool */
-
#include "mod_dav.h"
DAV_DECLARE(void) dav_register_provider(apr_pool_t *p, const char *name,
const dav_provider *provider)
{
- /* ### ignore the pool; it is NULL right now */
- p = ap_global_hook_pool;
-
if (dav_repos_providers == NULL) {
dav_repos_providers = apr_make_hash(p);
apr_register_cleanup(p, NULL, dav_cleanup_providers, apr_null_cleanup);
{ NULL }
};
-static void register_hooks(void)
+static void register_hooks(apr_pool_t *p)
{
ap_hook_process_connection(process_echo_connection, NULL, NULL,
AP_HOOK_MIDDLE);
return APR_SUCCESS;
}
-static void cache_register_hook(void)
+static void cache_register_hook(apr_pool_t *p)
{
ap_register_output_filter("CACHE", cache_filter, AP_FTYPE_HTTP_HEADER);
}
{NULL}
};
-static void charset_register_hooks(void)
+static void charset_register_hooks(apr_pool_t *p)
{
ap_hook_fixups(find_code_page, NULL, NULL, AP_HOOK_MIDDLE);
ap_hook_insert_filter(xlate_insert_filter, NULL, NULL, AP_HOOK_MIDDLE);
return OK;
}
-static void disk_cache_register_hook(void)
+static void disk_cache_register_hook(apr_pool_t *p)
{
ap_hook_store_cache(disk_cache, NULL, NULL, AP_HOOK_MIDDLE);
ap_hook_serve_cache(disk_serve, NULL, NULL, AP_HOOK_MIDDLE);
* The actual delivery of content to the browser [9] is not handled by
* a hook; see the handler declarations below.
*/
-static void example_register_hooks(void)
+static void example_register_hooks(apr_pool_t *p)
{
/* module initializer */
ap_hook_post_config(example_init,
return ap_run_generic_hook_test(r->the_request);
}
-static void ExportRegisterHooks(void)
+static void ExportRegisterHooks(apr_pool_t *p)
{
ap_hook_log_transaction(ExportLogTransaction,NULL,NULL,AP_HOOK_MIDDLE);
}
return OK;
}
-static void ImportRegisterHooks(void)
+static void ImportRegisterHooks(apr_pool_t *p)
{
AP_HOOK_GENERIC(generic_hook_test,ImportGenericHookTestHook,NULL,NULL,
AP_HOOK_MIDDLE);
{NULL}
};
-static void register_hooks(void)
+static void register_hooks(apr_pool_t *p)
{
ap_hook_post_config(include_post_config, NULL, NULL, AP_HOOK_REALLY_FIRST);
ap_register_output_filter("INCLUDES", includes_filter, AP_FTYPE_CONTENT);
return OK;
}
-static void register_hooks(void)
+static void register_hooks(apr_pool_t *p)
{
ap_hook_handler(asis_handler,NULL,NULL,AP_HOOK_MIDDLE);
}
}
}
-static void register_hooks(void)
+static void register_hooks(apr_pool_t *p)
{
ap_hook_handler(handle_autoindex,NULL,NULL,AP_HOOK_MIDDLE);
}
return OK; /* NOT r->status, even if it has changed. */
}
-static void register_hooks(void)
+static void register_hooks(apr_pool_t *p)
{
ap_hook_handler(cgi_handler, NULL, NULL, AP_HOOK_MIDDLE);
}
return OK; /* NOT r->status, even if it has changed. */
}
-static void register_hook(void)
+static void register_hook(apr_pool_t *p)
{
ap_hook_post_config(cgid_init, NULL, NULL, AP_HOOK_MIDDLE);
ap_hook_handler(cgid_handler, NULL, NULL, AP_HOOK_MIDDLE);
{NULL}
};
-static void register_hooks(void)
+static void register_hooks(apr_pool_t *p)
{
ap_hook_handler(display_info, NULL, NULL, AP_HOOK_MIDDLE);
}
return 0;
}
-static void register_hooks(void)
+static void register_hooks(apr_pool_t *p)
{
ap_hook_handler(status_handler, NULL, NULL, AP_HOOK_MIDDLE);
}
{ NULL }
};
-static void suexec_hooks(void)
+static void suexec_hooks(apr_pool_t *p)
{
ap_hook_get_suexec_identity(get_suexec_id_doer,NULL,NULL,AP_HOOK_MIDDLE);
}
}
/* Need to peek into the file figure out what it really is... */
+ /* This is wrong for Unicode FS ... should move to APR */
hFile = CreateFile(r->filename, GENERIC_READ, FILE_SHARE_READ, NULL,
OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
if (hFile == INVALID_HANDLE_VALUE) {
}
}
-static void register_hooks(void)
+static void register_hooks(apr_pool_t *p)
{
ap_hook_pre_config(core_pre_config, NULL, NULL, AP_HOOK_REALLY_FIRST);
ap_hook_post_config(core_post_config,NULL,NULL,AP_HOOK_REALLY_FIRST);
apr_table_do(filter_chain, r, conf->filter_names, r->content_type, NULL);
}
-static void register_hooks(void)
+static void register_hooks(apr_pool_t *p)
{
ap_hook_type_checker(find_ct,NULL,NULL,AP_HOOK_MIDDLE);
ap_hook_post_config(mime_post_config,NULL,NULL,AP_HOOK_MIDDLE);
#endif
}
-static void register_hooks(void)
+static void register_hooks(apr_pool_t *p)
{
ap_hook_child_init(init_child,NULL,NULL,AP_HOOK_MIDDLE);
ap_hook_open_logs(init_config_log,NULL,NULL,AP_HOOK_MIDDLE);
return OK;
}
-static void register_hooks(void)
+static void register_hooks(apr_pool_t *p)
{
ap_hook_handler(action_handler,NULL,NULL,AP_HOOK_LAST);
}
return DECLINED;
}
-static void register_hooks(void)
+static void register_hooks(apr_pool_t *p)
{
static const char * const aszPre[]={ "mod_userdir.c",NULL };
return DECLINED;
}
-
-static void register_hooks(void)
+static void register_hooks(apr_pool_t *p)
{
static const char * const aszSucc[]={ "mod_autoindex.c", NULL };
return HTTP_INTERNAL_SERVER_ERROR;
}
-static void register_hooks(void)
+static void register_hooks(apr_pool_t *p)
{
ap_hook_handler(imap_handler,NULL,NULL,AP_HOOK_MIDDLE);
}
return DECLINED;
}
-static void register_hooks(void)
+static void register_hooks(apr_pool_t *p)
{
ap_hook_fixups(fix_encoding,NULL,NULL,AP_HOOK_MIDDLE);
ap_hook_type_checker(handle_multi,NULL,NULL,AP_HOOK_FIRST);
* MODULE-DEFINITION-END
*/
- /* the apr_table_t of commands we provide */
-static const command_rec command_table[] = {
- AP_INIT_FLAG( "RewriteEngine", cmd_rewriteengine, NULL, OR_FILEINFO,
- "On or Off to enable or disable (default) the whole "
- "rewriting engine"),
- AP_INIT_ITERATE( "RewriteOptions", cmd_rewriteoptions, NULL, OR_FILEINFO,
- "List of option strings to set"),
- AP_INIT_TAKE1( "RewriteBase", cmd_rewritebase, NULL, OR_FILEINFO,
- "the base URL of the per-directory context"),
- AP_INIT_RAW_ARGS("RewriteCond", cmd_rewritecond, NULL, OR_FILEINFO,
- "an input string and a to be applied regexp-pattern"),
- AP_INIT_RAW_ARGS("RewriteRule", cmd_rewriterule, NULL, OR_FILEINFO,
- "an URL-applied regexp-pattern and a substitution URL"),
- AP_INIT_TAKE2( "RewriteMap", cmd_rewritemap, NULL, RSRC_CONF,
- "a mapname and a filename"),
- AP_INIT_TAKE1( "RewriteLock", cmd_rewritelock, NULL, RSRC_CONF,
- "the filename of a lockfile used for inter-process "
- "synchronization"),
- AP_INIT_TAKE1( "RewriteLog", cmd_rewritelog, NULL, RSRC_CONF,
- "the filename of the rewriting logfile"),
- AP_INIT_TAKE1( "RewriteLogLevel", cmd_rewriteloglevel, NULL, RSRC_CONF,
- "the level of the rewriting logfile verbosity "
- "(0=none, 1=std, .., 9=max)"),
- { NULL }
-};
-
-static void register_hooks(void)
-{
- ap_hook_handler(handler_redirect, NULL, NULL, AP_HOOK_MIDDLE);
- ap_hook_post_config(init_module,NULL,NULL,AP_HOOK_MIDDLE);
- ap_hook_child_init(init_child,NULL,NULL,AP_HOOK_MIDDLE);
-
- ap_hook_fixups(hook_fixup,NULL,NULL,AP_HOOK_FIRST);
- ap_hook_translate_name(hook_uri2file,NULL,NULL,AP_HOOK_FIRST);
- ap_hook_type_checker(hook_mimetype,NULL,NULL,AP_HOOK_MIDDLE);
-}
-
- /* the main config structure */
-module AP_MODULE_DECLARE_DATA rewrite_module = {
- STANDARD20_MODULE_STUFF,
- config_perdir_create, /* create per-dir config structures */
- config_perdir_merge, /* merge per-dir config structures */
- config_server_create, /* create per-server config structures */
- config_server_merge, /* merge per-server config structures */
- command_table, /* apr_table_t of config file commands */
- register_hooks /* register hooks */
-};
+ /* the module (predeclaration) */
+module AP_MODULE_DECLARE_DATA rewrite_module;
/* the cache */
static cache *cachep;
ExitThread(TSR_THREAD, 0);
}
#endif
+
+ /* the apr_table_t of commands we provide */
+static const command_rec command_table[] = {
+ AP_INIT_FLAG( "RewriteEngine", cmd_rewriteengine, NULL, OR_FILEINFO,
+ "On or Off to enable or disable (default) the whole "
+ "rewriting engine"),
+ AP_INIT_ITERATE( "RewriteOptions", cmd_rewriteoptions, NULL, OR_FILEINFO,
+ "List of option strings to set"),
+ AP_INIT_TAKE1( "RewriteBase", cmd_rewritebase, NULL, OR_FILEINFO,
+ "the base URL of the per-directory context"),
+ AP_INIT_RAW_ARGS("RewriteCond", cmd_rewritecond, NULL, OR_FILEINFO,
+ "an input string and a to be applied regexp-pattern"),
+ AP_INIT_RAW_ARGS("RewriteRule", cmd_rewriterule, NULL, OR_FILEINFO,
+ "an URL-applied regexp-pattern and a substitution URL"),
+ AP_INIT_TAKE2( "RewriteMap", cmd_rewritemap, NULL, RSRC_CONF,
+ "a mapname and a filename"),
+ AP_INIT_TAKE1( "RewriteLock", cmd_rewritelock, NULL, RSRC_CONF,
+ "the filename of a lockfile used for inter-process "
+ "synchronization"),
+ AP_INIT_TAKE1( "RewriteLog", cmd_rewritelog, NULL, RSRC_CONF,
+ "the filename of the rewriting logfile"),
+ AP_INIT_TAKE1( "RewriteLogLevel", cmd_rewriteloglevel, NULL, RSRC_CONF,
+ "the level of the rewriting logfile verbosity "
+ "(0=none, 1=std, .., 9=max)"),
+ { NULL }
+};
+
+static void register_hooks(apr_pool_t *p)
+{
+ ap_hook_handler(handler_redirect, NULL, NULL, AP_HOOK_MIDDLE);
+ ap_hook_post_config(init_module,NULL,NULL,AP_HOOK_MIDDLE);
+ ap_hook_child_init(init_child,NULL,NULL,AP_HOOK_MIDDLE);
+
+ ap_hook_fixups(hook_fixup,NULL,NULL,AP_HOOK_FIRST);
+ ap_hook_translate_name(hook_uri2file,NULL,NULL,AP_HOOK_FIRST);
+ ap_hook_type_checker(hook_mimetype,NULL,NULL,AP_HOOK_MIDDLE);
+}
+
+ /* the main config structure */
+module AP_MODULE_DECLARE_DATA rewrite_module = {
+ STANDARD20_MODULE_STUFF,
+ config_perdir_create, /* create per-dir config structures */
+ config_perdir_merge, /* merge per-dir config structures */
+ config_server_create, /* create per-server config structures */
+ config_server_merge, /* merge per-server config structures */
+ command_table, /* apr_table_t of config file commands */
+ register_hooks /* register hooks */
+};
/*EOF*/
return OK;
}
-static void register_hooks(void)
+static void register_hooks(apr_pool_t *p)
{
ap_hook_fixups(check_speling,NULL,NULL,AP_HOOK_LAST);
}
}
#endif /* HAVE_UNIX_SUEXEC */
-static void register_hooks(void)
+static void register_hooks(apr_pool_t *p)
{
static const char * const aszSucc[]={ "mod_alias.c",NULL };
return OK;
}
-static void register_hooks(void)
+static void register_hooks(apr_pool_t *p)
{
ap_hook_translate_name(mva_translate, NULL, NULL, AP_HOOK_MIDDLE);
}
return rv;
}
-static void register_hooks(void)
+
+static void register_hooks(apr_pool_t *p)
{
ap_hook_fixups(add_cern_meta_data,NULL,NULL,AP_HOOK_MIDDLE);
}
+
module AP_MODULE_DECLARE_DATA cern_meta_module =
{
STANDARD20_MODULE_STUFF,
return OK;
}
-static void register_hooks(void)
+static void register_hooks(apr_pool_t *p)
{
ap_hook_fixups(fixup_env_module,NULL,NULL,AP_HOOK_MIDDLE);
}
-
module AP_MODULE_DECLARE_DATA env_module =
{
STANDARD20_MODULE_STUFF,
return OK;
}
-static void register_hooks(void)
+static void register_hooks(apr_pool_t *p)
{
ap_hook_fixups(add_expires,NULL,NULL,AP_HOOK_MIDDLE);
}
return DECLINED;
}
-static void register_hooks(void)
+
+static void register_hooks(apr_pool_t *p)
{
ap_hook_fixups(fixup_headers,NULL,NULL,AP_HOOK_MIDDLE);
}
+
module AP_MODULE_DECLARE_DATA headers_module =
{
STANDARD20_MODULE_STUFF,
return magic_rsl_to_request(r);
}
-static void register_hooks(void)
+static void register_hooks(apr_pool_t *p)
{
static const char * const aszPre[]={ "mod_mime.c", NULL };
return DECLINED;
}
-static void register_hooks(void)
+static void register_hooks(apr_pool_t *p)
{
ap_hook_header_parser(match_headers, NULL, NULL, AP_HOOK_MIDDLE);
ap_hook_post_read_request(match_headers, NULL, NULL, AP_HOOK_MIDDLE);
return DECLINED;
}
-static void register_hooks(void)
+static void register_hooks(apr_pool_t *p)
{
ap_hook_post_config(unique_id_global_init, NULL, NULL, AP_HOOK_MIDDLE);
ap_hook_child_init(unique_id_child_init, NULL, NULL, AP_HOOK_MIDDLE);
"name of the tracking cookie"),
{NULL}
};
-static void register_hooks(void)
+
+static void register_hooks(apr_pool_t *p)
{
ap_hook_fixups(spot_cookie,NULL,NULL,AP_HOOK_MIDDLE);
}
+
module AP_MODULE_DECLARE_DATA usertrack_module = {
STANDARD20_MODULE_STUFF,
make_cookie_dir, /* dir config creater */
{NULL}
};
-static void register_hooks(void)
+static void register_hooks(apr_pool_t *p)
{
/* [2] filename-to-URI translation */
ap_hook_translate_name(proxy_trans, NULL, NULL, AP_HOOK_FIRST);