dgaudet     98/04/19 13:10:49

  Modified:    htdocs/manual invoking.html new_features_1_3.html
               htdocs/manual/vhosts index.html
               src      CHANGES
               src/include http_conf_globals.h httpd.h
               src/main http_core.c http_main.c http_vhost.c
               src/support httpd.8
  Log:
  This should help folks trying to understand vhosts.  It adds the command
  line option -S which dumps a description of how apache parsed the vhost
  directives.  In particular it'd really help the folks who recently ran
  into /etc/hosts mismatches with DNS.
  
  Revision  Changes    Path
  1.18      +4 -0      apache-1.3/htdocs/manual/invoking.html
  
  Index: invoking.html
  ===================================================================
  RCS file: /export/home/cvs/apache-1.3/htdocs/manual/invoking.html,v
  retrieving revision 1.17
  retrieving revision 1.18
  diff -u -r1.17 -r1.18
  --- invoking.html     1998/02/05 20:04:10     1.17
  +++ invoking.html     1998/04/19 20:10:41     1.18
  @@ -59,6 +59,10 @@
   <DT><CODE>-l</CODE>
   <DD>Give a list of all modules compiled into the server.
   
  +<DT><CODE>-S</CODE>
  +<DD>Show the settings as parsed from the config file (currently only
  +shows a breakdown of the vhost settings).
  +
   <DT><CODE>-?</CODE>
   <DD>Print a list of the httpd options, and then exit.
   </DL>
  
  
  
  1.53      +7 -0      apache-1.3/htdocs/manual/new_features_1_3.html
  
  Index: new_features_1_3.html
  ===================================================================
  RCS file: /export/home/cvs/apache-1.3/htdocs/manual/new_features_1_3.html,v
  retrieving revision 1.52
  retrieving revision 1.53
  diff -u -r1.52 -r1.53
  --- new_features_1_3.html     1998/04/01 12:23:13     1.52
  +++ new_features_1_3.html     1998/04/19 20:10:42     1.53
  @@ -626,6 +626,13 @@
     outside the Apache source tree. To achieve this APACI installs the Apache C
     header files together with the <CODE>apxs</CODE> tool.
    </LI>
  + <li><strong>-S command line option for debugging vhost setup</strong>
  +  <br>
  +  If Apache is invoked with the <code>-S</code> command line option it will
  +  dump out information regarding how it parsed the <code>VirtualHost</code>
  +  sections.  This is useful for folks trying to debug their virtual host
  +  configuration.
  + </li>
   </UL>
   
   <!--#include virtual="footer.html" -->
  
  
  
  1.3       +6 -0      apache-1.3/htdocs/manual/vhosts/index.html
  
  Index: index.html
  ===================================================================
  RCS file: /export/home/cvs/apache-1.3/htdocs/manual/vhosts/index.html,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- index.html        1998/01/26 16:54:34     1.2
  +++ index.html        1998/04/19 20:10:43     1.3
  @@ -53,6 +53,12 @@
   <LI><A HREF="../mod/core.html#serverpath">ServerPath</A>
   </UL>
   
  +<p>Folks trying to debug their virtual host configuration may find the
  +Apache <code>-S</code> command line switch useful.  It will dump out a
  +description of how Apache parsed the configuration file.  Careful
  +examination of the IP addresses and server names may help uncover
  +configuration mistakes.
  +
   <!--#include virtual="footer.html" -->
   </BODY>
   </HTML>
  
  
  
  1.777     +5 -0      apache-1.3/src/CHANGES
  
  Index: CHANGES
  ===================================================================
  RCS file: /export/home/cvs/apache-1.3/src/CHANGES,v
  retrieving revision 1.776
  retrieving revision 1.777
  diff -u -r1.776 -r1.777
  --- CHANGES   1998/04/19 19:19:35     1.776
  +++ CHANGES   1998/04/19 20:10:43     1.777
  @@ -1,5 +1,10 @@
   Changes with Apache 1.3b7
   
  +  *) If you start apache with the -S command line option it will dump
  +     out the parsed vhost settings.  This is useful for folks trying
  +     to figure out what is wrong with their vhost configuration.
  +     (Other dumps may be added in the future.) [Dean Gaudet]
  +
     *) Add %pA, %pI, and %pp codes to ap_vformatter (and hence ap_bprintf,
        ap_snprintf, and ap_psprintf).  See include/ap.h for docs.
        [Dean Gaudet]
  
  
  
  1.28      +1 -0      apache-1.3/src/include/http_conf_globals.h
  
  Index: http_conf_globals.h
  ===================================================================
  RCS file: /export/home/cvs/apache-1.3/src/include/http_conf_globals.h,v
  retrieving revision 1.27
  retrieving revision 1.28
  diff -u -r1.27 -r1.28
  --- http_conf_globals.h       1998/04/11 12:00:19     1.27
  +++ http_conf_globals.h       1998/04/19 20:10:44     1.28
  @@ -80,6 +80,7 @@
   extern int ap_daemons_limit;
   extern MODULE_VAR_EXPORT int ap_suexec_enabled;
   extern int ap_listenbacklog;
  +extern int ap_dump_settings;
   
   extern char *ap_pid_fname;
   extern char *ap_scoreboard_fname;
  
  
  
  1.206     +4 -0      apache-1.3/src/include/httpd.h
  
  Index: httpd.h
  ===================================================================
  RCS file: /export/home/cvs/apache-1.3/src/include/httpd.h,v
  retrieving revision 1.205
  retrieving revision 1.206
  diff -u -r1.205 -r1.206
  --- httpd.h   1998/04/16 00:19:39     1.205
  +++ httpd.h   1998/04/19 20:10:45     1.206
  @@ -753,6 +753,10 @@
   
       server_rec *next;
   
  +    /* description of where the definition came from */
  +    const char *defn_name;
  +    unsigned defn_line_number;
  +
       /* Full locations of server config info */
   
       char *srm_confname;
  
  
  
  1.186     +4 -1      apache-1.3/src/main/http_core.c
  
  Index: http_core.c
  ===================================================================
  RCS file: /export/home/cvs/apache-1.3/src/main/http_core.c,v
  retrieving revision 1.185
  retrieving revision 1.186
  diff -u -r1.185 -r1.186
  --- http_core.c       1998/04/18 21:37:58     1.185
  +++ http_core.c       1998/04/19 20:10:46     1.186
  @@ -1202,7 +1202,10 @@
   
       s->next = main_server->next;
       main_server->next = s;
  -     
  +
  +    s->defn_name = cmd->config_file->name;
  +    s->defn_line_number = cmd->config_file->line_number;
  +
       old_end_token = cmd->end_token;
       cmd->end_token = end_virtualhost_section;
       cmd->server = s;
  
  
  
  1.325     +14 -5     apache-1.3/src/main/http_main.c
  
  Index: http_main.c
  ===================================================================
  RCS file: /export/home/cvs/apache-1.3/src/main/http_main.c,v
  retrieving revision 1.324
  retrieving revision 1.325
  diff -u -r1.324 -r1.325
  --- http_main.c       1998/04/11 12:00:29     1.324
  +++ http_main.c       1998/04/19 20:10:46     1.325
  @@ -244,6 +244,7 @@
   time_t ap_restart_time;
   int ap_suexec_enabled = 0;
   int ap_listenbacklog;
  +int ap_dump_settings;
   
   /*
    * The max child slot ever assigned, preserved across restarts.  Necessary
  @@ -803,7 +804,7 @@
       fprintf(stderr, "Usage: %s [-d directory] [-f file]\n", bin);
   #endif
       fprintf(stderr, "       %s [-C \"directive\"] [-c \"directive\"]\n", 
pad);
  -    fprintf(stderr, "       %s [-v] [-V] [-h] [-l]\n", pad);
  +    fprintf(stderr, "       %s [-v] [-V] [-h] [-l] [-S]\n", pad);
       fprintf(stderr, "Options:\n");
   #ifdef SHARED_CORE
       fprintf(stderr, "  -L directory     : specify an alternate location for 
shared object files\n");
  @@ -816,6 +817,7 @@
       fprintf(stderr, "  -V               : show compile settings\n");
       fprintf(stderr, "  -h               : list available configuration 
directives\n");
       fprintf(stderr, "  -l               : list compiled-in modules\n");
  +    fprintf(stderr, "  -S               : show parsed settings (currently 
only vhost settings)\n");
       exit(1);
   }
   
  @@ -3968,11 +3970,12 @@
   
       ap_setup_prelinked_modules();
   
  +    while ((c = getopt(argc, argv,
  +                                 "C:c:Xd:f:vVhlL:S"
   #ifdef DEBUG_SIGSTOP
  -    while ((c = getopt(argc, argv, "C:c:Xd:f:vVhlL:Z:")) != -1) {
  -#else
  -    while ((c = getopt(argc, argv, "C:c:Xd:f:vVhlL:")) != -1) {
  +                                 "Z:"
   #endif
  +                     )) != -1) {
        char **new;
        switch (c) {
        case 'c':
  @@ -4019,6 +4022,9 @@
             */
            break;
   #endif
  +     case 'S':
  +         ap_dump_settings = 1;
  +         break;
        case '?':
            usage(argv[0]);
        }
  @@ -5065,7 +5071,7 @@
   
       ap_setup_prelinked_modules();
   
  -    while ((c = getopt(argc, argv, "C:c:Xd:f:vVhlZ:ius")) != -1) {
  +    while ((c = getopt(argc, argv, "C:c:Xd:f:vVhlZ:iusS")) != -1) {
           char **new;
        switch (c) {
        case 'c':
  @@ -5094,6 +5100,9 @@
            break;
        case 's':
            run_as_service = 0;
  +         break;
  +     case 'S':
  +         ap_dump_settings = 1;
            break;
   #endif /* WIN32 */
        case 'd':
  
  
  
  1.14      +60 -0     apache-1.3/src/main/http_vhost.c
  
  Index: http_vhost.c
  ===================================================================
  RCS file: /export/home/cvs/apache-1.3/src/main/http_vhost.c,v
  retrieving revision 1.13
  retrieving revision 1.14
  diff -u -r1.13 -r1.14
  --- http_vhost.c      1998/04/11 12:00:31     1.13
  +++ http_vhost.c      1998/04/19 20:10:47     1.14
  @@ -410,6 +410,63 @@
   }
   
   
  +static void dump_vhost_config(FILE *f)
  +{
  +    int i;
  +    ipaddr_chain *ic;
  +    name_chain *nc;
  +    char buf[MAX_STRING_LEN];
  +
  +    fprintf(f, "VirtualHost configuration:\n");
  +    for (i = 0; i < IPHASH_TABLE_SIZE; ++i) {
  +     for (ic = iphash_table[i]; ic; ic = ic->next) {
  +         if (ic->sar->host_port == 0) {
  +             ap_snprintf(buf, sizeof(buf), "%pA:*", &ic->sar->host_addr);
  +         }
  +         else {
  +             ap_snprintf(buf, sizeof(buf), "%pA:%u", &ic->sar->host_addr,
  +                 ic->sar->host_port);
  +         }
  +         if (ic->names == NULL) {
  +             fprintf(f, "%-22s %s (%s:%u)\n", buf,
  +                 ic->server->server_hostname, ic->server->defn_name,
  +                 ic->server->defn_line_number);
  +             continue;
  +         }
  +         fprintf(f, "%-22s is a NameVirtualHost\n"
  +                    "%22s default server %s (%s:%u)\n",
  +                    buf, "", ic->server->server_hostname,
  +                    ic->server->defn_name, ic->server->defn_line_number);
  +         for (nc = ic->names; nc; nc = nc->next) {
  +             if (nc->sar->host_port) {
  +                 fprintf(f, "%22s port %u ", "", nc->sar->host_port);
  +             }
  +             else {
  +                 fprintf(f, "%22s port * ", "");
  +             }
  +             fprintf(f, "namevhost %s (%s:%u)\n",
  +                     nc->server->server_hostname,
  +                     nc->server->defn_name,
  +                     nc->server->defn_line_number);
  +         }
  +     }
  +    }
  +    if (default_list) {
  +     fprintf(f, "_default_ servers:\n");
  +     for (ic = default_list; ic; ic = ic->next) {
  +         if (ic->sar->host_port == 0) {
  +             fprintf(f, "port * ");
  +         }
  +         else {
  +             fprintf(f, "port %u ", ic->sar->host_port);
  +         }
  +         fprintf(f, "server %s (%s:%u)\n",
  +             ic->server->server_hostname, ic->server->defn_name,
  +             ic->server->defn_line_number);
  +     }
  +    }
  +}
  +
   /* compile the tables and such we need to do the run-time vhost lookups */
   void ap_fini_vhost_config(pool *p, server_rec *main_s)
   {
  @@ -590,6 +647,9 @@
   #ifdef IPHASH_STATISTICS
       dump_iphash_statistics(main_s);
   #endif
  +    if (ap_dump_settings) {
  +     dump_vhost_config(stderr);
  +    }
   }
   
   
  
  
  
  1.8       +6 -0      apache-1.3/src/support/httpd.8
  
  Index: httpd.8
  ===================================================================
  RCS file: /export/home/cvs/apache-1.3/src/support/httpd.8,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- httpd.8   1998/04/10 10:34:36     1.7
  +++ httpd.8   1998/04/19 20:10:48     1.8
  @@ -85,6 +85,9 @@
   .B \-V
   ] 
   [
  +.B \-S
  +] 
  +[
   .B \-?
   ] 
   
  @@ -141,6 +144,9 @@
   .TP
   .B \-l
   Output a list of modules compiled into the server.
  +.B \-S
  +Show the settings as parsed from the config file (currently only shows the
  +virtualhost settings).
   .TP
   .B \-X
   Run in single-process mode, for internal debugging purposes only; the daemon
  
  
  

Reply via email to