A number of modules need updating for the handler hook in order to get windows building again. I will be committing the following patch shortly (after some additional testing). Allan -------------------------------------------------------------------------- Index: libhttpd.def =================================================================== RCS file: /home/cvs/httpd-2.0/libhttpd.def,v retrieving revision 1.49 diff -u -d -b -r1.49 libhttpd.def --- libhttpd.def 2001/01/04 22:37:27 1.49 +++ libhttpd.def 2001/01/08 18:43:08 @@ -376,6 +376,7 @@ ap_hook_post_config ap_hook_open_logs ap_hook_child_init + ap_hook_handler ap_get_status_table ap_run_default_port Index: modules/aaa/mod_auth_anon.c =================================================================== RCS file: /home/cvs/httpd-2.0/modules/aaa/mod_auth_anon.c,v retrieving revision 1.19 diff -u -d -b -r1.19 mod_auth_anon.c --- modules/aaa/mod_auth_anon.c 2000/12/19 15:09:00 1.19 +++ modules/aaa/mod_auth_anon.c 2001/01/08 18:43:31 @@ -308,6 +308,5 @@ NULL, /* server config */ NULL, /* merge server config */ anon_auth_cmds, /* command apr_table_t */ - NULL, /* handlers */ register_hooks /* register hooks */ }; Index: modules/aaa/mod_auth_db.c =================================================================== RCS file: /home/cvs/httpd-2.0/modules/aaa/mod_auth_db.c,v retrieving revision 1.20 diff -u -d -b -r1.20 mod_auth_db.c --- modules/aaa/mod_auth_db.c 2000/12/19 19:44:16 1.20 +++ modules/aaa/mod_auth_db.c 2001/01/08 18:43:31 @@ -409,7 +409,6 @@ NULL, /* server config */ NULL, /* merge server config */ db_auth_cmds, /* command apr_table_t */ - NULL, /* handlers */ register_hooks /* register hooks */ }; Index: modules/aaa/mod_auth_dbm.c =================================================================== RCS file: /home/cvs/httpd-2.0/modules/aaa/mod_auth_dbm.c,v retrieving revision 1.22 diff -u -d -b -r1.22 mod_auth_dbm.c --- modules/aaa/mod_auth_dbm.c 2000/12/19 15:09:01 1.22 +++ modules/aaa/mod_auth_dbm.c 2001/01/08 18:43:32 @@ -349,6 +349,5 @@ NULL, /* server config */ NULL, /* merge server config */ dbm_auth_cmds, /* command apr_table_t */ - NULL, /* handlers */ register_hooks /* register hooks */ }; Index: modules/aaa/mod_auth_digest.c =================================================================== RCS file: /home/cvs/httpd-2.0/modules/aaa/mod_auth_digest.c,v retrieving revision 1.27 diff -u -d -b -r1.27 mod_auth_digest.c --- modules/aaa/mod_auth_digest.c 2000/12/19 15:09:02 1.27 +++ modules/aaa/mod_auth_digest.c 2001/01/08 18:43:32 @@ -2070,7 +2070,6 @@ NULL, /* server config */ NULL, /* merge server config */ digest_cmds, /* command table */ - NULL, /* handlers */ register_hooks /* register hooks */ }; Index: modules/cache/mod_file_cache.c =================================================================== RCS file: /home/cvs/httpd-2.0/modules/cache/mod_file_cache.c,v retrieving revision 1.34 diff -u -d -b -r1.34 mod_file_cache.c --- modules/cache/mod_file_cache.c 2000/12/13 13:22:51 1.34 +++ modules/cache/mod_file_cache.c 2001/01/08 18:43:33 @@ -416,12 +416,16 @@ return OK; } -static int file_cache_handler(request_rec *r) +static int file_cache_handler(const char *handler, request_rec *r) { a_file *match; int errstatus; int rc = OK; + if (strcmp(handler, "*.*")) { + return DECLINED; + } + /* we don't handle anything but GET */ if (r->method_number != M_GET) return DECLINED; @@ -473,6 +477,7 @@ static void register_hooks(void) { + ap_hook_handler(file_cache_handler, NULL, NULL, AP_HOOK_MIDDLE); ap_hook_post_config(file_cache_post_config, NULL, NULL, AP_HOOK_MIDDLE); ap_hook_translate_name(file_cache_xlat, NULL, NULL, AP_HOOK_MIDDLE); /* This trick doesn't work apparently because the translate hooks @@ -483,12 +488,6 @@ } -static const handler_rec file_cache_handlers[] = -{ - { "*/*", file_cache_handler }, - { NULL } -}; - module AP_MODULE_DECLARE_DATA file_cache_module = { STANDARD20_MODULE_STUFF, @@ -497,6 +496,5 @@ create_server_config, /* create per-server config structure */ NULL, /* merge per-server config structures */ file_cache_cmds, /* command handlers */ - file_cache_handlers, /* handlers */ register_hooks /* register hooks */ }; Index: modules/dav/fs/mod_dav_fs.c =================================================================== RCS file: /home/cvs/httpd-2.0/modules/dav/fs/mod_dav_fs.c,v retrieving revision 1.10 diff -u -d -b -r1.10 mod_dav_fs.c --- modules/dav/fs/mod_dav_fs.c 2000/10/14 18:24:33 1.10 +++ modules/dav/fs/mod_dav_fs.c 2001/01/08 18:43:37 @@ -138,6 +138,5 @@ dav_fs_create_server_config, /* server config */ dav_fs_merge_server_config, /* merge server config */ dav_fs_cmds, /* command table */ - NULL, /* handlers */ register_hooks, /* register hooks */ }; Index: modules/dav/main/mod_dav.c =================================================================== RCS file: /home/cvs/httpd-2.0/modules/dav/main/mod_dav.c,v retrieving revision 1.33 diff -u -d -b -r1.33 mod_dav.c --- modules/dav/main/mod_dav.c 2000/11/27 12:54:21 1.33 +++ modules/dav/main/mod_dav.c 2001/01/08 18:43:39 @@ -3784,10 +3784,14 @@ /* * Response handler for DAV resources */ -static int dav_handler(request_rec *r) +static int dav_handler(const char *handler, request_rec *r) { dav_dir_conf *conf; + if (strcmp(handler, "dav-handler")) { + return DECLINED; + } + /* quickly ignore any HTTP/0.9 requests */ if (r->assbackwards) { return DECLINED; @@ -4004,6 +4008,7 @@ static void register_hooks(void) { + ap_hook_handler(dav_handler, NULL, NULL, AP_HOOK_MIDDLE); ap_hook_post_config(dav_init_handler, NULL, NULL, AP_HOOK_MIDDLE); ap_hook_type_checker(dav_type_checker, NULL, NULL, AP_HOOK_FIRST); @@ -4044,12 +4049,6 @@ { NULL } }; -static const handler_rec dav_handlers[] = -{ - {"dav-handler", dav_handler}, - { NULL } -}; - module DAV_DECLARE_DATA dav_module = { STANDARD20_MODULE_STUFF, @@ -4058,7 +4057,6 @@ dav_create_server_config, /* server config */ dav_merge_server_config, /* merge server config */ dav_cmds, /* command table */ - dav_handlers, /* handlers */ register_hooks, /* register hooks */ }; Index: modules/generators/mod_status.c =================================================================== RCS file: /home/cvs/httpd-2.0/modules/generators/mod_status.c,v retrieving revision 1.14 diff -u -d -b -r1.14 mod_status.c --- modules/generators/mod_status.c 2000/10/16 06:05:07 1.14 +++ modules/generators/mod_status.c 2001/01/08 18:43:42 @@ -78,12 +78,16 @@ return 1; } -static int status_handler(request_rec *r) +static int status_handler(const char *handler, request_rec *r) { int i; apr_array_header_t *server_status; ap_status_table_row_t *status_rows; + if (strcmp(handler, STATUS_MAGIC_TYPE) && strcmp(handler, "server-status")) { + return DECLINED; + } + r->allowed = (1 << M_GET); if (r->method_number != M_GET) return DECLINED; @@ -120,12 +124,10 @@ return 0; } -static const handler_rec status_handlers[] = +static void register_hooks(void) { - {STATUS_MAGIC_TYPE, status_handler}, - {"server-status", status_handler}, - {NULL} -}; + ap_hook_handler(status_handler, NULL, NULL, AP_HOOK_MIDDLE); +} module AP_MODULE_DECLARE_DATA status_module = { @@ -135,6 +137,5 @@ NULL, /* server config */ NULL, /* merge server config */ NULL, /* command table */ - status_handlers, /* handlers */ - NULL /* register hooks */ + register_hooks /* register hooks */ }; Index: modules/mappers/mod_rewrite.c =================================================================== RCS file: /home/cvs/httpd-2.0/modules/mappers/mod_rewrite.c,v retrieving revision 1.57 diff -u -d -b -r1.57 mod_rewrite.c --- modules/mappers/mod_rewrite.c 2001/01/03 16:47:02 1.57 +++ modules/mappers/mod_rewrite.c 2001/01/08 18:43:46 @@ -210,14 +210,9 @@ { NULL } }; - /* the apr_table_t of content handlers we provide */ -static const handler_rec handler_table[] = { - { "redirect-handler", handler_redirect }, - { 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); @@ -234,7 +229,6 @@ 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 */ - handler_table, /* [#8] MIME-typed-dispatched handlers */ register_hooks /* register hooks */ }; @@ -1626,8 +1620,12 @@ ** */ -static int handler_redirect(request_rec *r) +static int handler_redirect(const char *handler, request_rec *r) { + if (strcmp(handler, "redirect-handler")) { + return DECLINED; + } + /* just make sure that we are really meant! */ if (strncmp(r->filename, "redirect:", 9) != 0) { return DECLINED; Index: modules/mappers/mod_so.c =================================================================== RCS file: /home/cvs/httpd-2.0/modules/mappers/mod_so.c,v retrieving revision 1.31 diff -u -d -b -r1.31 mod_so.c --- modules/mappers/mod_so.c 2001/01/02 18:32:49 1.31 +++ modules/mappers/mod_so.c 2001/01/08 18:43:46 @@ -379,6 +379,5 @@ so_sconf_create, /* server config */ NULL, /* merge server config */ so_cmds, /* command apr_table_t */ - NULL, /* handlers */ NULL /* register hooks */ }; Index: modules/mappers/mod_speling.c =================================================================== RCS file: /home/cvs/httpd-2.0/modules/mappers/mod_speling.c,v retrieving revision 1.23 diff -u -d -b -r1.23 mod_speling.c --- modules/mappers/mod_speling.c 2001/01/05 19:40:03 1.23 +++ modules/mappers/mod_speling.c 2001/01/08 18:43:46 @@ -564,6 +564,5 @@ create_mconfig_for_server, /* server config */ NULL, /* merge server config */ speling_cmds, /* command apr_table_t */ - NULL, /* handlers */ register_hooks /* register hooks */ }; Index: modules/metadata/mod_cern_meta.c =================================================================== RCS file: /home/cvs/httpd-2.0/modules/metadata/mod_cern_meta.c,v retrieving revision 1.25 diff -u -d -b -r1.25 mod_cern_meta.c --- modules/metadata/mod_cern_meta.c 2000/12/01 21:49:25 1.25 +++ modules/metadata/mod_cern_meta.c 2001/01/08 18:43:48 @@ -397,6 +397,5 @@ NULL, /* server config */ NULL, /* merge server configs */ cern_meta_cmds, /* command apr_table_t */ - NULL, /* handlers */ register_hooks /* register hooks */ }; Index: modules/metadata/mod_expires.c =================================================================== RCS file: /home/cvs/httpd-2.0/modules/metadata/mod_expires.c,v retrieving revision 1.24 diff -u -d -b -r1.24 mod_expires.c --- modules/metadata/mod_expires.c 2000/12/01 21:49:25 1.24 +++ modules/metadata/mod_expires.c 2001/01/08 18:43:48 @@ -516,6 +516,5 @@ NULL, /* server config */ NULL, /* merge server configs */ expires_cmds, /* command apr_table_t */ - NULL, /* handlers */ register_hooks /* register hooks */ }; Index: modules/metadata/mod_headers.c =================================================================== RCS file: /home/cvs/httpd-2.0/modules/metadata/mod_headers.c,v retrieving revision 1.14 diff -u -d -b -r1.14 mod_headers.c --- modules/metadata/mod_headers.c 2000/12/01 21:49:25 1.14 +++ modules/metadata/mod_headers.c 2001/01/08 18:43:48 @@ -262,6 +262,5 @@ create_headers_config, /* server config */ merge_headers_config, /* merge server configs */ headers_cmds, /* command apr_table_t */ - NULL, /* handlers */ register_hooks /* register hooks */ }; Index: modules/metadata/mod_usertrack.c =================================================================== RCS file: /home/cvs/httpd-2.0/modules/metadata/mod_usertrack.c,v retrieving revision 1.22 diff -u -d -b -r1.22 mod_usertrack.c --- modules/metadata/mod_usertrack.c 2000/12/01 21:49:26 1.22 +++ modules/metadata/mod_usertrack.c 2001/01/08 18:43:48 @@ -319,6 +319,5 @@ make_cookie_log_state, /* server config */ NULL, /* merge server configs */ cookie_log_cmds, /* command apr_table_t */ - NULL, /* handlers */ register_hooks /* register hooks */ }; Index: os/win32/mod_isapi.c =================================================================== RCS file: /home/cvs/httpd-2.0/os/win32/mod_isapi.c,v retrieving revision 1.31 diff -u -d -b -r1.31 mod_isapi.c --- os/win32/mod_isapi.c 2000/11/29 18:50:12 1.31 +++ os/win32/mod_isapi.c 2001/01/08 18:44:00 @@ -345,17 +345,22 @@ return TRUE; } -apr_status_t isapi_handler (request_rec *r) +apr_status_t isapi_handler (const char *handler, request_rec *r) { - isapi_server_conf *sconf = ap_get_module_config(r->server->module_config, - &isapi_module); - apr_table_t *e = r->subprocess_env; + isapi_server_conf * sconf; + apr_table_t *e; apr_status_t rv; isapi_loaded *isa; isapi_cid *cid; DWORD read; int res; + if(strcmp(handler, "isapi-isa")) + return DECLINED; + + sconf = ap_get_module_config(r->server->module_config, &isapi_module); + e = r->subprocess_env; + /* Use similar restrictions as CGIs * * If this fails, it's pointless to load the isapi dll. @@ -1262,6 +1267,7 @@ static void isapi_hooks(void) { ap_hook_post_config(isapi_post_config, NULL, NULL, AP_HOOK_MIDDLE); + ap_hook_handler(isapi_handler, NULL, NULL, AP_HOOK_MIDDLE); } static const command_rec isapi_cmds[] = { @@ -1278,11 +1284,6 @@ { NULL } }; -handler_rec isapi_handlers[] = { - { "isapi-isa", isapi_handler }, - { NULL} -}; - module isapi_module = { STANDARD20_MODULE_STUFF, NULL, /* create per-dir config */ @@ -1290,6 +1291,5 @@ create_isapi_server_config, /* server config */ NULL, /* merge server config */ isapi_cmds, /* command apr_table_t */ - isapi_handlers, /* handlers */ isapi_hooks /* register hooks */ }; Index: server/mpm/winnt/mpm_winnt.c =================================================================== RCS file: /home/cvs/httpd-2.0/server/mpm/winnt/mpm_winnt.c,v retrieving revision 1.119 diff -u -d -b -r1.119 mpm_winnt.c --- server/mpm/winnt/mpm_winnt.c 2000/12/21 16:25:44 1.119 +++ server/mpm/winnt/mpm_winnt.c 2001/01/08 18:44:12 @@ -2348,6 +2348,5 @@ NULL, /* create per-server config structure */ NULL, /* merge per-server config structures */ winnt_cmds, /* command apr_table_t */ - NULL, /* handlers */ winnt_hooks /* register_hooks */ };