server_rec *ap_read_config(process_rec *process, ap_context_t *temp_pool, const char *config_name);
void ap_post_config_hook(ap_context_t *pconf, ap_context_t *plog, ap_context_t *ptemp, server_rec *s);
void ap_child_init_hook(ap_context_t *pchild, server_rec *s);
+void ap_register_hooks(module *m);
+void ap_hook_deregister_all(void);
/* For http_request.c... */
int g_bDebugHooks;
const char *g_szCurrentHookName;
-static void register_hooks(module *m)
+void ap_register_hooks(module *m)
{
if(m->register_hooks)
{
#endif /*_OSD_POSIX*/
/* FIXME: is this the right place to call this? */
- register_hooks(m);
+ ap_register_hooks(m);
}
/*
ap_context_t *plog; /* Pool of log streams, reset _after_ each read of conf */
ap_context_t *ptemp; /* Pool for temporary config stuff, reset often */
ap_context_t *pcommands; /* Pool for -C and -c switches */
+ module **mod;
ap_initialize();
process = create_process(argc, (const char **)argv);
ap_util_uri_init();
- g_pHookPool=pglobal;
+ g_pHookPool=pconf;
ap_setup_prelinked_modules(process);
ap_destroy_pool(ptemp);
for (;;) {
+ ap_hook_deregister_all();
ap_clear_pool(pconf);
+ for (mod = ap_prelinked_modules; *mod != NULL; mod++) {
+ ap_register_hooks(*mod);
+ }
ap_create_context(&ptemp, pconf);
ap_server_root = def_server_root;
ap_run_pre_config(pconf, plog, ptemp);