From: William A. Rowe Jr Date: Wed, 17 Jan 2001 15:52:12 +0000 (+0000) Subject: Provide apr_pool_t arg to register_hooks, since anything they do in that X-Git-Tag: APACHE_2_0_BETA_CANDIDATE_1~192 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=40655f864108cca870e4442f99969c24097b4c9e;p=apache Provide apr_pool_t arg to register_hooks, since anything they do in that step -must- be done with a pool that will not outlive the cmd pool, from which they may have been dynamically loaded. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@87697 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/include/http_config.h b/include/http_config.h index f691b3ddec..67c063efd9 100644 --- a/include/http_config.h +++ b/include/http_config.h @@ -396,9 +396,10 @@ struct module_struct { * 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 diff --git a/modules/aaa/mod_access.c b/modules/aaa/mod_access.c index e7c8510b70..1e7f705e46 100644 --- a/modules/aaa/mod_access.c +++ b/modules/aaa/mod_access.c @@ -406,7 +406,7 @@ static int check_dir_access(request_rec *r) 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); } diff --git a/modules/aaa/mod_auth.c b/modules/aaa/mod_auth.c index 4d6a4dbc31..0fd9ba6a42 100644 --- a/modules/aaa/mod_auth.c +++ b/modules/aaa/mod_auth.c @@ -318,7 +318,7 @@ static int check_user_access(request_rec *r) 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); diff --git a/modules/aaa/mod_auth_anon.c b/modules/aaa/mod_auth_anon.c index 703aa00a05..ec69551119 100644 --- a/modules/aaa/mod_auth_anon.c +++ b/modules/aaa/mod_auth_anon.c @@ -294,7 +294,8 @@ static int check_anon_access(request_rec *r) #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); diff --git a/modules/aaa/mod_auth_db.c b/modules/aaa/mod_auth_db.c index 552e2b7989..610b14a740 100644 --- a/modules/aaa/mod_auth_db.c +++ b/modules/aaa/mod_auth_db.c @@ -395,7 +395,7 @@ static int db_check_auth(request_rec *r) 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); diff --git a/modules/aaa/mod_auth_dbm.c b/modules/aaa/mod_auth_dbm.c index 7399aa036f..8b8048bbb4 100644 --- a/modules/aaa/mod_auth_dbm.c +++ b/modules/aaa/mod_auth_dbm.c @@ -335,7 +335,7 @@ static int dbm_check_auth(request_rec *r) 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); diff --git a/modules/aaa/mod_auth_digest.c b/modules/aaa/mod_auth_digest.c index b7601107f1..edd95d9604 100644 --- a/modules/aaa/mod_auth_digest.c +++ b/modules/aaa/mod_auth_digest.c @@ -2049,7 +2049,7 @@ static int add_auth_info(request_rec *r) } -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 }; diff --git a/modules/cache/mod_file_cache.c b/modules/cache/mod_file_cache.c index 25c3886b4c..c853332680 100644 --- a/modules/cache/mod_file_cache.c +++ b/modules/cache/mod_file_cache.c @@ -167,6 +167,7 @@ static apr_status_t open_file(apr_file_t **file, const char *filename, int flg1, * 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 */ @@ -498,7 +499,7 @@ AP_INIT_ITERATE("mmapfile", mmapfile, NULL, RSRC_CONF, {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); diff --git a/modules/dav/fs/mod_dav_fs.c b/modules/dav/fs/mod_dav_fs.c index 20d2c32110..324019f218 100644 --- a/modules/dav/fs/mod_dav_fs.c +++ b/modules/dav/fs/mod_dav_fs.c @@ -119,7 +119,7 @@ static const command_rec dav_fs_cmds[] = { 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); @@ -127,7 +127,7 @@ static void register_hooks(void) 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 = diff --git a/modules/dav/main/liveprop.c b/modules/dav/main/liveprop.c index ec477b7a1c..120626b937 100644 --- a/modules/dav/main/liveprop.c +++ b/modules/dav/main/liveprop.c @@ -56,10 +56,7 @@ #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" @@ -78,9 +75,6 @@ static void dav_register_liveprop_namespace(apr_pool_t *p, const char *uri) { 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); diff --git a/modules/dav/main/mod_dav.c b/modules/dav/main/mod_dav.c index f273ff8129..c921806366 100644 --- a/modules/dav/main/mod_dav.c +++ b/modules/dav/main/mod_dav.c @@ -4005,7 +4005,7 @@ static int dav_type_checker(request_rec *r) 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); @@ -4015,8 +4015,7 @@ static void register_hooks(void) 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); } /*--------------------------------------------------------------------------- diff --git a/modules/dav/main/providers.c b/modules/dav/main/providers.c index 1a534514df..e5071c93a0 100644 --- a/modules/dav/main/providers.c +++ b/modules/dav/main/providers.c @@ -54,9 +54,6 @@ #include "apr_pools.h" #include "apr_hash.h" - -#include "ap_hooks.h" /* ### for ap_global_hook_pool */ - #include "mod_dav.h" @@ -72,9 +69,6 @@ static apr_status_t dav_cleanup_providers(void *ctx) 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); diff --git a/modules/echo/mod_echo.c b/modules/echo/mod_echo.c index a5e17d08aa..e52ca1cf50 100644 --- a/modules/echo/mod_echo.c +++ b/modules/echo/mod_echo.c @@ -119,7 +119,7 @@ static const command_rec echo_cmds[] = { 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); diff --git a/modules/experimental/mod_cache.c b/modules/experimental/mod_cache.c index 003156dc26..946503ce10 100644 --- a/modules/experimental/mod_cache.c +++ b/modules/experimental/mod_cache.c @@ -107,7 +107,7 @@ static int cache_filter(ap_filter_t *f, ap_bucket_brigade *bb) 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); } diff --git a/modules/experimental/mod_charset_lite.c b/modules/experimental/mod_charset_lite.c index 9d7769cdfe..33bdf28be1 100644 --- a/modules/experimental/mod_charset_lite.c +++ b/modules/experimental/mod_charset_lite.c @@ -1119,7 +1119,7 @@ static const command_rec cmds[] = {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); diff --git a/modules/experimental/mod_disk_cache.c b/modules/experimental/mod_disk_cache.c index 277c01188d..a32f5b09dd 100644 --- a/modules/experimental/mod_disk_cache.c +++ b/modules/experimental/mod_disk_cache.c @@ -153,7 +153,7 @@ static int disk_cache(request_rec *r, ap_bucket_brigade *bb, void **cf) 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); diff --git a/modules/experimental/mod_example.c b/modules/experimental/mod_example.c index 0d6bad0d33..ea96362c2c 100644 --- a/modules/experimental/mod_example.c +++ b/modules/experimental/mod_example.c @@ -1090,7 +1090,7 @@ static int example_header_parser(request_rec *r) * 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, diff --git a/modules/experimental/mod_generic_hook_export.c b/modules/experimental/mod_generic_hook_export.c index 01d9c68369..3029aea260 100644 --- a/modules/experimental/mod_generic_hook_export.c +++ b/modules/experimental/mod_generic_hook_export.c @@ -65,7 +65,7 @@ static int ExportLogTransaction(request_rec *r) 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); } diff --git a/modules/experimental/mod_generic_hook_import.c b/modules/experimental/mod_generic_hook_import.c index 74d573f271..e73f23a808 100644 --- a/modules/experimental/mod_generic_hook_import.c +++ b/modules/experimental/mod_generic_hook_import.c @@ -65,7 +65,7 @@ static int ImportGenericHookTestHook(const char *szStr) 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); diff --git a/modules/filters/mod_include.c b/modules/filters/mod_include.c index a9e549794d..a86b78807f 100644 --- a/modules/filters/mod_include.c +++ b/modules/filters/mod_include.c @@ -3065,7 +3065,7 @@ static const command_rec includes_cmds[] = {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); diff --git a/modules/generators/mod_asis.c b/modules/generators/mod_asis.c index 6b7de1d27f..cb65f20272 100644 --- a/modules/generators/mod_asis.c +++ b/modules/generators/mod_asis.c @@ -124,7 +124,7 @@ static int asis_handler(request_rec *r) 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); } diff --git a/modules/generators/mod_autoindex.c b/modules/generators/mod_autoindex.c index d4734ff93c..54357cd8d9 100644 --- a/modules/generators/mod_autoindex.c +++ b/modules/generators/mod_autoindex.c @@ -1698,7 +1698,7 @@ static int handle_autoindex(request_rec *r) } } -static void register_hooks(void) +static void register_hooks(apr_pool_t *p) { ap_hook_handler(handle_autoindex,NULL,NULL,AP_HOOK_MIDDLE); } diff --git a/modules/generators/mod_cgi.c b/modules/generators/mod_cgi.c index 8ccc223627..b293a4a850 100644 --- a/modules/generators/mod_cgi.c +++ b/modules/generators/mod_cgi.c @@ -720,7 +720,7 @@ static int cgi_handler(request_rec *r) 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); } diff --git a/modules/generators/mod_cgid.c b/modules/generators/mod_cgid.c index 2155a839e6..afca7e4353 100644 --- a/modules/generators/mod_cgid.c +++ b/modules/generators/mod_cgid.c @@ -931,7 +931,7 @@ static int cgid_handler(request_rec *r) 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); diff --git a/modules/generators/mod_info.c b/modules/generators/mod_info.c index e4997b9bea..6117d9c642 100644 --- a/modules/generators/mod_info.c +++ b/modules/generators/mod_info.c @@ -466,7 +466,7 @@ static const command_rec info_cmds[] = {NULL} }; -static void register_hooks(void) +static void register_hooks(apr_pool_t *p) { ap_hook_handler(display_info, NULL, NULL, AP_HOOK_MIDDLE); } diff --git a/modules/generators/mod_status.c b/modules/generators/mod_status.c index 4e204b6e25..ec4038cd7e 100644 --- a/modules/generators/mod_status.c +++ b/modules/generators/mod_status.c @@ -124,7 +124,7 @@ static int status_handler(request_rec *r) 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); } diff --git a/modules/generators/mod_suexec.c b/modules/generators/mod_suexec.c index adf10f4458..7ecc65e59f 100644 --- a/modules/generators/mod_suexec.c +++ b/modules/generators/mod_suexec.c @@ -141,7 +141,7 @@ static const command_rec suexec_cmds[] = { 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); } diff --git a/modules/http/http_core.c b/modules/http/http_core.c index 312bca727f..f14cdf1eae 100644 --- a/modules/http/http_core.c +++ b/modules/http/http_core.c @@ -1014,6 +1014,7 @@ AP_DECLARE (file_type_e) ap_get_win32_interpreter(const request_rec *r, } /* 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) { @@ -3542,7 +3543,7 @@ static void core_insert_filter(request_rec *r) } } -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); diff --git a/modules/http/mod_mime.c b/modules/http/mod_mime.c index 6cbd5f7e0e..bca6ae6d9e 100644 --- a/modules/http/mod_mime.c +++ b/modules/http/mod_mime.c @@ -840,7 +840,7 @@ static void mime_insert_filter(request_rec *r) 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); diff --git a/modules/loggers/mod_log_config.c b/modules/loggers/mod_log_config.c index a565010f30..2c37090b2a 100644 --- a/modules/loggers/mod_log_config.c +++ b/modules/loggers/mod_log_config.c @@ -1241,7 +1241,7 @@ static void init_child(apr_pool_t *p, server_rec *s) #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); diff --git a/modules/mappers/mod_actions.c b/modules/mappers/mod_actions.c index 5c400bc477..68ece9badd 100644 --- a/modules/mappers/mod_actions.c +++ b/modules/mappers/mod_actions.c @@ -209,7 +209,7 @@ static int action_handler(request_rec *r) 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); } diff --git a/modules/mappers/mod_alias.c b/modules/mappers/mod_alias.c index 40e5cf560b..766c047189 100644 --- a/modules/mappers/mod_alias.c +++ b/modules/mappers/mod_alias.c @@ -420,7 +420,7 @@ static int fixup_redir(request_rec *r) return DECLINED; } -static void register_hooks(void) +static void register_hooks(apr_pool_t *p) { static const char * const aszPre[]={ "mod_userdir.c",NULL }; diff --git a/modules/mappers/mod_dir.c b/modules/mappers/mod_dir.c index 9d305da862..58077e88ed 100644 --- a/modules/mappers/mod_dir.c +++ b/modules/mappers/mod_dir.c @@ -221,8 +221,7 @@ static int handle_dir(request_rec *r) return DECLINED; } - -static void register_hooks(void) +static void register_hooks(apr_pool_t *p) { static const char * const aszSucc[]={ "mod_autoindex.c", NULL }; diff --git a/modules/mappers/mod_imap.c b/modules/mappers/mod_imap.c index f3781dd520..877a440965 100644 --- a/modules/mappers/mod_imap.c +++ b/modules/mappers/mod_imap.c @@ -913,7 +913,7 @@ menu_bail: 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); } diff --git a/modules/mappers/mod_negotiation.c b/modules/mappers/mod_negotiation.c index a7add86bf6..d85fb49932 100644 --- a/modules/mappers/mod_negotiation.c +++ b/modules/mappers/mod_negotiation.c @@ -2745,7 +2745,7 @@ static int fix_encoding(request_rec *r) 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); diff --git a/modules/mappers/mod_rewrite.c b/modules/mappers/mod_rewrite.c index d170cbe28c..f1a014f690 100644 --- a/modules/mappers/mod_rewrite.c +++ b/modules/mappers/mod_rewrite.c @@ -184,53 +184,8 @@ * 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; @@ -4144,5 +4099,53 @@ int main(int argc, char *argv[]) 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*/ diff --git a/modules/mappers/mod_speling.c b/modules/mappers/mod_speling.c index ef4e80b08d..b4151202cd 100644 --- a/modules/mappers/mod_speling.c +++ b/modules/mappers/mod_speling.c @@ -551,7 +551,7 @@ static int check_speling(request_rec *r) 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); } diff --git a/modules/mappers/mod_userdir.c b/modules/mappers/mod_userdir.c index e4eb99ac79..ef54d0ffe1 100644 --- a/modules/mappers/mod_userdir.c +++ b/modules/mappers/mod_userdir.c @@ -384,7 +384,7 @@ static ap_unix_identity_t *get_suexec_id_doer(const request_rec *r) } #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 }; diff --git a/modules/mappers/mod_vhost_alias.c b/modules/mappers/mod_vhost_alias.c index c3654c5dce..85b2874054 100644 --- a/modules/mappers/mod_vhost_alias.c +++ b/modules/mappers/mod_vhost_alias.c @@ -469,7 +469,7 @@ static int mva_translate(request_rec *r) 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); } diff --git a/modules/metadata/mod_cern_meta.c b/modules/metadata/mod_cern_meta.c index 0c2d3db505..491068c33e 100644 --- a/modules/metadata/mod_cern_meta.c +++ b/modules/metadata/mod_cern_meta.c @@ -385,10 +385,12 @@ static int add_cern_meta_data(request_rec *r) 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, diff --git a/modules/metadata/mod_env.c b/modules/metadata/mod_env.c index 732f6c82eb..6e6f4a9490 100644 --- a/modules/metadata/mod_env.c +++ b/modules/metadata/mod_env.c @@ -254,12 +254,11 @@ static int fixup_env_module(request_rec *r) 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, diff --git a/modules/metadata/mod_expires.c b/modules/metadata/mod_expires.c index d06268966a..e9f2a44441 100644 --- a/modules/metadata/mod_expires.c +++ b/modules/metadata/mod_expires.c @@ -503,7 +503,7 @@ static int add_expires(request_rec *r) 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); } diff --git a/modules/metadata/mod_headers.c b/modules/metadata/mod_headers.c index 4bf81a49a9..f866dfcaf1 100644 --- a/modules/metadata/mod_headers.c +++ b/modules/metadata/mod_headers.c @@ -250,10 +250,12 @@ static int fixup_headers(request_rec *r) 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, diff --git a/modules/metadata/mod_mime_magic.c b/modules/metadata/mod_mime_magic.c index b426cf8eb2..6294a00035 100644 --- a/modules/metadata/mod_mime_magic.c +++ b/modules/metadata/mod_mime_magic.c @@ -2463,7 +2463,7 @@ static int magic_find_ct(request_rec *r) 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 }; diff --git a/modules/metadata/mod_setenvif.c b/modules/metadata/mod_setenvif.c index c4c5fbb0a1..a5220ea697 100644 --- a/modules/metadata/mod_setenvif.c +++ b/modules/metadata/mod_setenvif.c @@ -452,7 +452,7 @@ static int match_headers(request_rec *r) 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); diff --git a/modules/metadata/mod_unique_id.c b/modules/metadata/mod_unique_id.c index d2604a1c89..16a02a5fa4 100644 --- a/modules/metadata/mod_unique_id.c +++ b/modules/metadata/mod_unique_id.c @@ -385,7 +385,7 @@ static int gen_unique_id(request_rec *r) 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); diff --git a/modules/metadata/mod_usertrack.c b/modules/metadata/mod_usertrack.c index 80dd3c1ba5..44314f1047 100644 --- a/modules/metadata/mod_usertrack.c +++ b/modules/metadata/mod_usertrack.c @@ -308,10 +308,12 @@ static const command_rec cookie_log_cmds[] = { "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 */ diff --git a/modules/proxy/mod_proxy.c b/modules/proxy/mod_proxy.c index af25dc5e19..1ac42372d1 100644 --- a/modules/proxy/mod_proxy.c +++ b/modules/proxy/mod_proxy.c @@ -744,7 +744,7 @@ static const command_rec proxy_cmds[] = {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);