]> git.ipfire.org Git - thirdparty/apache/httpd.git/commitdiff
Put the pre_config hook back into the table. This solves the problem of
authorRyan Bloom <rbb@apache.org>
Thu, 30 Mar 2000 15:30:36 +0000 (15:30 +0000)
committerRyan Bloom <rbb@apache.org>
Thu, 30 Mar 2000 15:30:36 +0000 (15:30 +0000)
the pre-config hook only being valid for MPM's.  This patch also
distinguishes between STANDARD modules and MPM's.

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@84862 13f79535-47bb-0310-9956-ffa450edef68

include/ap_mmn.h
include/http_config.h
server/config.c
server/main.c
server/mpm/dexter/dexter.c
server/mpm/mpmt_beos/mpmt_beos.c
server/mpm/mpmt_pthread/mpmt_pthread.c
server/mpm/prefork/prefork.c
server/mpm/spmt_os2/spmt_os2.c
server/mpm/winnt/mpm_winnt.c

index 009199e4962d2d9c54bcca0754bf587a4f989bf6..5c7acc2282233dfb9c2baed2528c81f67325ec3c 100644 (file)
 #define MODULE_MAGIC_COOKIE 0x41503133UL /* "AP13" */
 
 #ifndef MODULE_MAGIC_NUMBER_MAJOR
-#define MODULE_MAGIC_NUMBER_MAJOR 19990320
+#define MODULE_MAGIC_NUMBER_MAJOR 20000330
 #endif
-#define MODULE_MAGIC_NUMBER_MINOR 6                     /* 0...n */
+#define MODULE_MAGIC_NUMBER_MINOR 1                     /* 0...n */
 #define MODULE_MAGIC_NUMBER MODULE_MAGIC_NUMBER_MAJOR  /* backward compat */
 
 /* Useful for testing for features. */
index ccc7e21d91811e846fe1b8cb0ad6eaf321cff75c..4cf661d75193d9b70e27f07758e020c578ccf6c9 100644 (file)
@@ -210,7 +210,7 @@ typedef struct module_struct {
                                  * It's mainly important for the DSO facility
                                  * (see also mod_so).
                                  */
-
+    void *(*pre_config) (ap_context_t *p, ap_context_t *plog, ap_context_t *ptemp, server_rec *s);
     void *(*create_dir_config) (ap_context_t *p, char *dir);
     void *(*merge_dir_config) (ap_context_t *p, void *base_conf, void *new_conf);
     void *(*create_server_config) (ap_context_t *p, server_rec *s);
@@ -249,6 +249,15 @@ typedef struct module_struct {
 #define STANDARD_MODULE_STUFF  this_module_needs_to_be_ported_to_apache_2_0
 
 #define STANDARD20_MODULE_STUFF        MODULE_MAGIC_NUMBER_MAJOR, \
+                               MODULE_MAGIC_NUMBER_MINOR, \
+                               -1, \
+                               __FILE__, \
+                               NULL, \
+                               NULL, \
+                               MODULE_MAGIC_COOKIE, \
+                                NULL
+
+#define MPM20_MODULE_STUFF     MODULE_MAGIC_NUMBER_MAJOR, \
                                MODULE_MAGIC_NUMBER_MINOR, \
                                -1, \
                                __FILE__, \
@@ -368,7 +377,6 @@ CORE_EXPORT(const char *) ap_handle_command(cmd_parms *parms, void *config, cons
 
   /* Hooks */
 DECLARE_HOOK(int,header_parser,(request_rec *))
-DECLARE_HOOK(void,pre_config,(ap_context_t *pconf,ap_context_t *plog,ap_context_t *ptemp))
 DECLARE_HOOK(void,post_config,
             (ap_context_t *pconf,ap_context_t *plog,ap_context_t *ptemp,server_rec *s))
 DECLARE_HOOK(void,open_logs,
index 4ea02c9f929d0ad7822a98aebba17e069182e5b8..058f3d55cad0a5f0587b0c5b6fb97e19cf834ccf 100644 (file)
 
 HOOK_STRUCT(
            HOOK_LINK(header_parser)
-           HOOK_LINK(pre_config)
            HOOK_LINK(post_config)
            HOOK_LINK(open_logs)
            HOOK_LINK(child_init)
 )
 
 IMPLEMENT_HOOK_RUN_ALL(int,header_parser,(request_rec *r),(r),OK,DECLINED)
-IMPLEMENT_HOOK_VOID(pre_config,(ap_context_t *pconf,ap_context_t *plog,ap_context_t *ptemp),
-                   (pconf,plog,ptemp))
 IMPLEMENT_HOOK_VOID(post_config,
                    (ap_context_t *pconf, ap_context_t *plog, ap_context_t *ptemp, server_rec *s),
                    (pconf,plog,ptemp,s))
@@ -1311,6 +1308,17 @@ void ap_single_module_configure(ap_context_t *p, server_rec *s, module *m)
                              (*m->create_dir_config)(p, NULL));
 }
 
+void run_pre_config(ap_context_t *p, ap_context_t *plog,
+                       ap_context_t *ptemp, server_rec *s)
+{
+    module *m;
+
+    for (m = top_module; m; m = m->next)
+        if (m->pre_config)
+            (*m->pre_config) (p, plog, ptemp, s);
+    init_handlers(p);
+}
+
 void ap_post_config_hook(ap_context_t *pconf, ap_context_t *plog, ap_context_t *ptemp, server_rec *s)
 {
     ap_run_post_config(pconf,plog,ptemp,s); 
index d4e72e3b6a0c35bb1f844c0d044d2463cc867eff..493a7c79c4d45446c34439ccd7359638f1543f2d 100644 (file)
@@ -275,10 +275,6 @@ static void usage(process_rec *process)
     destroy_and_exit_process(process, 1);
 }
 
-
-
-
-
 ap_context_t *g_pHookPool;
 
 #ifdef WIN32
@@ -368,7 +364,7 @@ API_EXPORT_NONSTD(int)        main(int argc, char *argv[])
        for example, to settle down. */
 
     ap_server_root = def_server_root;
-    ap_run_pre_config(pconf, plog, ptemp);
+    run_pre_config(pconf, plog, ptemp, server_conf);
     server_conf = ap_read_config(process, ptemp, confname);
     if (configtestonly) {
        ap_log_error(APLOG_MARK, APLOG_STARTUP | APLOG_NOERRNO, 0, NULL, "Syntax OK\n");
@@ -387,7 +383,7 @@ API_EXPORT_NONSTD(int)        main(int argc, char *argv[])
        }
        ap_create_context(&ptemp, pconf);
        ap_server_root = def_server_root;
-       ap_run_pre_config(pconf, plog, ptemp);
+       run_pre_config(pconf, plog, ptemp, server_conf);
        server_conf = ap_read_config(process, ptemp, confname);
        ap_clear_pool(plog);
        ap_run_open_logs(pconf, plog, ptemp, server_conf);
index 32c6d2837dc1113a50d165b4695b10c0830c0951..a09f941004bd3b3705b343f48ff9dba66cc6a2f5 100644 (file)
@@ -1498,7 +1498,6 @@ static void dexter_pre_config(ap_context_t *p, ap_context_t *plog, ap_context_t
 
 static void dexter_hooks(void)
 {
-    ap_hook_pre_config(dexter_pre_config, NULL, NULL, HOOK_MIDDLE);
     INIT_SIGLIST()
     one_process = 0;
 }
@@ -1707,7 +1706,8 @@ LISTEN_COMMANDS
 };
 
 module MODULE_VAR_EXPORT mpm_dexter_module = {
-    STANDARD20_MODULE_STUFF,
+    MPM20_MODULE_STUFF,
+    dexter_pre_config,          /* run hook before the configuration is read */ 
     NULL,                      /* create per-directory config structure */
     NULL,                      /* merge per-directory config structures */
     NULL,                      /* create per-server config structure */
index c07b260bf0be71eb6c00660fd1dac7290b6deda6..f6dfe92ab466fae211248ec715912208527345fc 100644 (file)
@@ -1212,7 +1212,6 @@ static void mpmt_beos_pre_config(ap_context_t *pconf, ap_context_t *plog, ap_con
 
 static void mpmt_beos_hooks(void)
 {
-    ap_hook_pre_config(mpmt_beos_pre_config,NULL,NULL,HOOK_MIDDLE);
     INIT_SIGLIST()
     one_process = 0;
 }
@@ -1409,7 +1408,8 @@ LISTEN_COMMANDS
 };
 
 module MODULE_VAR_EXPORT mpm_mpmt_beos_module = {
-    STANDARD20_MODULE_STUFF,
+    MPM20_MODULE_STUFF,
+    mpmt_beos_pre_config,       /* hook run before the configuration is read */
     NULL,                      /* create per-directory config structure */
     NULL,                      /* merge per-directory config structures */
     NULL,                      /* create per-server config structure */
index d9fb9d4082ddd2ee574e3d64c8de82f7ba0e2443..2bc7326d87c49289ae384cc596c9922cd1b65628 100644 (file)
@@ -1526,7 +1526,6 @@ static void mpmt_pthread_pre_config(ap_context_t *pconf, ap_context_t *plog, ap_
 
 static void mpmt_pthread_hooks(void)
 {
-    ap_hook_pre_config(mpmt_pthread_pre_config,NULL,NULL,HOOK_MIDDLE);
     INIT_SIGLIST()
     one_process = 0;
 }
@@ -1721,7 +1720,8 @@ LISTEN_COMMANDS
 };
 
 module MODULE_VAR_EXPORT mpm_mpmt_pthread_module = {
-    STANDARD20_MODULE_STUFF,
+    MPM20_MODULE_STUFF,
+    mpmt_pthread_pre_config,    /* run hook before the configuration is read */
     NULL,                      /* create per-directory config structure */
     NULL,                      /* merge per-directory config structures */
     NULL,                      /* create per-server config structure */
index c9f89868817b0b993af747b6fe4115cac6aa7698..2522b469b1a99e79d406d6dbd7523cb627aa9467 100644 (file)
@@ -2407,7 +2407,6 @@ static void prefork_pre_config(ap_context_t *p, ap_context_t *plog, ap_context_t
 
 static void prefork_hooks(void)
 {
-    ap_hook_pre_config(prefork_pre_config,NULL,NULL,HOOK_MIDDLE);
     INIT_SIGLIST();
 #ifdef AUX3
     (void) set42sig();
@@ -2595,7 +2594,8 @@ LISTEN_COMMANDS
 };
 
 module MODULE_VAR_EXPORT mpm_prefork_module = {
-    STANDARD20_MODULE_STUFF,
+    MPM20_MODULE_STUFF,
+    prefork_pre_config,         /* run hook before the configuration is read */
     NULL,                      /* create per-directory config structure */
     NULL,                      /* merge per-directory config structures */
     NULL,                      /* create per-server config structure */
index 4869d0b3a6579a8fdc2919d78508109a1440709b..bb144cec4c6ec9061e1de72a0f5c94b42e673da1 100644 (file)
@@ -1632,7 +1632,6 @@ static void spmt_os2_pre_config(ap_context_t *pconf, ap_context_t *plog, ap_cont
 
 static void spmt_os2_hooks(void)
 {
-    ap_hook_pre_config(spmt_os2_pre_config,NULL,NULL,HOOK_MIDDLE);
     INIT_SIGLIST();
     /* TODO: set one_process properly */ one_process = 0;
 }
@@ -1784,7 +1783,8 @@ LISTEN_COMMANDS
 };
 
 module MODULE_VAR_EXPORT mpm_spmt_os2_module = {
-    STANDARD20_MODULE_STUFF,
+    MPM20_MODULE_STUFF,
+    spmt_os2_pre_config,        /* hook run before the configuration is read */
     NULL,                      /* create per-directory config structure */
     NULL,                      /* merge per-directory config structures */
     NULL,                      /* create per-server config structure */
index 229352cc1fab2955d49973b7bafbb00c62d48952..23f15c3264141af7e89a43a1db1de52778402d4f 100644 (file)
@@ -1747,7 +1747,6 @@ static void winnt_hooks(void)
 //    INIT_SIGLIST()
     one_process = 0;
     /* Configuration hooks implemented by http_config.c ... */
-    ap_hook_pre_config(winnt_pre_config, NULL, NULL, HOOK_MIDDLE);
 }
 
 /* 
@@ -1851,7 +1850,8 @@ LISTEN_COMMANDS
 };
 
 module MODULE_VAR_EXPORT mpm_winnt_module = {
-    STANDARD20_MODULE_STUFF,
+    MPM20_MODULE_STUFF,
+    winnt_pre_config,           /* hook run before configuration is read */
     NULL,                      /* create per-directory config structure */
     NULL,                      /* merge per-directory config structures */
     NULL,                      /* create per-server config structure */