You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@httpd.apache.org by tr...@locus.apache.org on 2000/06/12 00:06:57 UTC

cvs commit: apache-2.0/src/main http_config.c http_main.c

trawick     00/06/11 15:06:57

  Modified:    src/include http_config.h
               src/main http_config.c http_main.c
  Log:
  Fix a couple of problems with the pre/post config processing changes:
  
  1) symptom: on system with bad/no DNS setup, ServerName isn't
     processed so init fails
  
  cause:
  
    ap_fini_vhost_config() called before ap_process_config_tree(), so
    ServerName was never stored in the config structure
  
  2) symptom: on system with virtual hosts configured, SIGSEGV in
     open_multi_logs()
  
  cause:
  
     the module configs for the virtual hosts haven't been merged in
     yet, and open_multi_logs() gets NULL for the mod_log_config
     configuration
  
  This stuff needs to be cleaned up further, exploring the use of a
  post-config hook for fixup_virtual_hosts(), ap_fini_vhost_config(),
  and ap_sort_hooks(), getting a lot of logic out of main(), and
  processing the config tree only once.
  
  Revision  Changes    Path
  1.31      +1 -0      apache-2.0/src/include/http_config.h
  
  Index: http_config.h
  ===================================================================
  RCS file: /home/cvs/apache-2.0/src/include/http_config.h,v
  retrieving revision 1.30
  retrieving revision 1.31
  diff -u -r1.30 -r1.31
  --- http_config.h	2000/06/06 01:20:01	1.30
  +++ http_config.h	2000/06/11 22:06:56	1.31
  @@ -385,6 +385,7 @@
   API_EXPORT(void) ap_post_config_hook(ap_pool_t *pconf, ap_pool_t *plog, ap_pool_t *ptemp, server_rec *s);
   API_EXPORT(void) ap_run_rewrite_args(process_rec *process);
   API_EXPORT(void) ap_register_hooks(module *m);
  +API_EXPORT(void) ap_fixup_virtual_hosts(ap_pool_t *p, server_rec *main_server);
   
   /* For http_request.c... */
   
  
  
  
  1.61      +1 -5      apache-2.0/src/main/http_config.c
  
  Index: http_config.c
  ===================================================================
  RCS file: /home/cvs/apache-2.0/src/main/http_config.c,v
  retrieving revision 1.60
  retrieving revision 1.61
  diff -u -r1.60 -r1.61
  --- http_config.c	2000/06/06 01:20:02	1.60
  +++ http_config.c	2000/06/11 22:06:57	1.61
  @@ -1479,7 +1479,7 @@
   }
   
   
  -static void fixup_virtual_hosts(ap_pool_t *p, server_rec *main_server)
  +API_EXPORT(void) ap_fixup_virtual_hosts(ap_pool_t *p, server_rec *main_server)
   {
       server_rec *virt;
   
  @@ -1575,10 +1575,6 @@
   
       process_command_config(s, ap_server_post_read_config, conftree,
                                         p, ptemp);
  -
  -    fixup_virtual_hosts(p, s);
  -    ap_fini_vhost_config(p, s);
  -    ap_sort_hooks();
   
       return s;
   }
  
  
  
  1.59      +7 -0      apache-2.0/src/main/http_main.c
  
  Index: http_main.c
  ===================================================================
  RCS file: /home/cvs/apache-2.0/src/main/http_main.c,v
  retrieving revision 1.58
  retrieving revision 1.59
  diff -u -r1.58 -r1.59
  --- http_main.c	2000/06/10 16:14:56	1.58
  +++ http_main.c	2000/06/11 22:06:57	1.59
  @@ -62,6 +62,7 @@
   #include "http_main.h" 
   #include "http_log.h" 
   #include "http_config.h"
  +#include "http_vhost.h"
   #include "util_uri.h" 
   #include "util_ebcdic.h"
   #include "apr_getopt.h"
  @@ -371,6 +372,9 @@
       server_conf = ap_read_config(process, ptemp, confname, &conftree);
       ap_run_pre_config(pconf, plog, ptemp);
       ap_process_config_tree(server_conf, conftree, process->pconf, ptemp); 
  +    ap_fixup_virtual_hosts(pconf, server_conf);
  +    ap_fini_vhost_config(pconf, server_conf);
  +    ap_sort_hooks();
       if (configtestonly) {
   	ap_log_error(APLOG_MARK, APLOG_STARTUP | APLOG_NOERRNO, 0, NULL, "Syntax OK\n");
   	destroy_and_exit_process(process, 0);
  @@ -396,6 +400,9 @@
           server_conf = ap_read_config(process, ptemp, confname, &conftree);
   	ap_run_pre_config(pconf, plog, ptemp);
           ap_process_config_tree(server_conf, conftree, process->pconf, ptemp); 
  +        ap_fixup_virtual_hosts(pconf, server_conf);
  +        ap_fini_vhost_config(pconf, server_conf);
  +        ap_sort_hooks();
   	ap_clear_pool(plog);
   	ap_run_open_logs(pconf, plog, ptemp, server_conf);
   	ap_post_config_hook(pconf, plog, ptemp, server_conf);
  
  
  

Re: cvs commit: apache-2.0/src/main http_config.c http_main.c

Posted by David Reid <dr...@jetnet.co.uk>.
I'll test in the morning. :)

david
----- Original Message -----
From: <tr...@locus.apache.org>
To: <ap...@apache.org>
Sent: Sunday, June 11, 2000 11:06 PM
Subject: cvs commit: apache-2.0/src/main http_config.c http_main.c


> trawick     00/06/11 15:06:57
>
>   Modified:    src/include http_config.h
>                src/main http_config.c http_main.c
>   Log:
>   Fix a couple of problems with the pre/post config processing changes:
>
>   1) symptom: on system with bad/no DNS setup, ServerName isn't
>      processed so init fails
>
>   cause:
>
>     ap_fini_vhost_config() called before ap_process_config_tree(), so
>     ServerName was never stored in the config structure
>
>   2) symptom: on system with virtual hosts configured, SIGSEGV in
>      open_multi_logs()
>
>   cause:
>
>      the module configs for the virtual hosts haven't been merged in
>      yet, and open_multi_logs() gets NULL for the mod_log_config
>      configuration
>
>   This stuff needs to be cleaned up further, exploring the use of a
>   post-config hook for fixup_virtual_hosts(), ap_fini_vhost_config(),
>   and ap_sort_hooks(), getting a lot of logic out of main(), and
>   processing the config tree only once.
>
>   Revision  Changes    Path
>   1.31      +1 -0      apache-2.0/src/include/http_config.h
>
>   Index: http_config.h
>   ===================================================================
>   RCS file: /home/cvs/apache-2.0/src/include/http_config.h,v
>   retrieving revision 1.30
>   retrieving revision 1.31
>   diff -u -r1.30 -r1.31
>   --- http_config.h 2000/06/06 01:20:01 1.30
>   +++ http_config.h 2000/06/11 22:06:56 1.31
>   @@ -385,6 +385,7 @@
>    API_EXPORT(void) ap_post_config_hook(ap_pool_t *pconf, ap_pool_t *plog,
ap_pool_t *ptemp, server_rec *s);
>    API_EXPORT(void) ap_run_rewrite_args(process_rec *process);
>    API_EXPORT(void) ap_register_hooks(module *m);
>   +API_EXPORT(void) ap_fixup_virtual_hosts(ap_pool_t *p, server_rec
*main_server);
>
>    /* For http_request.c... */
>
>
>
>
>   1.61      +1 -5      apache-2.0/src/main/http_config.c
>
>   Index: http_config.c
>   ===================================================================
>   RCS file: /home/cvs/apache-2.0/src/main/http_config.c,v
>   retrieving revision 1.60
>   retrieving revision 1.61
>   diff -u -r1.60 -r1.61
>   --- http_config.c 2000/06/06 01:20:02 1.60
>   +++ http_config.c 2000/06/11 22:06:57 1.61
>   @@ -1479,7 +1479,7 @@
>    }
>
>
>   -static void fixup_virtual_hosts(ap_pool_t *p, server_rec *main_server)
>   +API_EXPORT(void) ap_fixup_virtual_hosts(ap_pool_t *p, server_rec
*main_server)
>    {
>        server_rec *virt;
>
>   @@ -1575,10 +1575,6 @@
>
>        process_command_config(s, ap_server_post_read_config, conftree,
>                                          p, ptemp);
>   -
>   -    fixup_virtual_hosts(p, s);
>   -    ap_fini_vhost_config(p, s);
>   -    ap_sort_hooks();
>
>        return s;
>    }
>
>
>
>   1.59      +7 -0      apache-2.0/src/main/http_main.c
>
>   Index: http_main.c
>   ===================================================================
>   RCS file: /home/cvs/apache-2.0/src/main/http_main.c,v
>   retrieving revision 1.58
>   retrieving revision 1.59
>   diff -u -r1.58 -r1.59
>   --- http_main.c 2000/06/10 16:14:56 1.58
>   +++ http_main.c 2000/06/11 22:06:57 1.59
>   @@ -62,6 +62,7 @@
>    #include "http_main.h"
>    #include "http_log.h"
>    #include "http_config.h"
>   +#include "http_vhost.h"
>    #include "util_uri.h"
>    #include "util_ebcdic.h"
>    #include "apr_getopt.h"
>   @@ -371,6 +372,9 @@
>        server_conf = ap_read_config(process, ptemp, confname, &conftree);
>        ap_run_pre_config(pconf, plog, ptemp);
>        ap_process_config_tree(server_conf, conftree, process->pconf,
ptemp);
>   +    ap_fixup_virtual_hosts(pconf, server_conf);
>   +    ap_fini_vhost_config(pconf, server_conf);
>   +    ap_sort_hooks();
>        if (configtestonly) {
>    ap_log_error(APLOG_MARK, APLOG_STARTUP | APLOG_NOERRNO, 0, NULL,
"Syntax OK\n");
>    destroy_and_exit_process(process, 0);
>   @@ -396,6 +400,9 @@
>            server_conf = ap_read_config(process, ptemp, confname,
&conftree);
>    ap_run_pre_config(pconf, plog, ptemp);
>            ap_process_config_tree(server_conf, conftree, process->pconf,
ptemp);
>   +        ap_fixup_virtual_hosts(pconf, server_conf);
>   +        ap_fini_vhost_config(pconf, server_conf);
>   +        ap_sort_hooks();
>    ap_clear_pool(plog);
>    ap_run_open_logs(pconf, plog, ptemp, server_conf);
>    ap_post_config_hook(pconf, plog, ptemp, server_conf);
>
>
>
>