The following reply was made to PR mod_log-any/2090; it has been noted by GNATS.

From: Dean Gaudet <[EMAIL PROTECTED]>
To: [EMAIL PROTECTED]
Cc:  Subject: Re: mod_log-any/2090: LogFormat directives are not "inherited" 
(fwd)
Date: Tue, 16 Jun 1998 23:51:55 -0700 (PDT)

   This message is in MIME format.  The first part should be readable text,
   while the remaining parts are likely unreadable without MIME-aware tools.
   Send mail to [EMAIL PROTECTED] for more info.
 
 --------------23269446CC34D6EBA8014F75
 Content-Type: TEXT/PLAIN; CHARSET=us-ascii
 Content-ID: <[EMAIL PROTECTED]>
 
 
 
 ---------- Forwarded message ----------
 Date: Thu, 11 Jun 1998 10:00:31 +0100
 From: Christof Damian <[EMAIL PROTECTED]>
 Organization: mediaconsult ltd.
 To: Dean Gaudet <[EMAIL PROTECTED]>
 Cc: Johnie Ingram <[EMAIL PROTECTED]>
 Subject: Re: mod_log-any/2090: LogFormat directives are not "inherited"
 
 Dean Gaudet wrote:
 > 
 > Christof -- a small bug in your patch.  I think you need to delay the
 > parsing of log formats until the open_multi_logs point like I suggested,
 > rather than in the merging point... because the main server is never
 > merged (there's nothing to merge into it).  Can I trouble you to fix that?
 > :)
 
 ups - I thought I checked that.
 
 Attached is a patch against 1.60 (cvs tree) and one against 1.59 (1.3.0)
 I don't know which one you prefer.
 
 damian
 -- 
 Christof Damian                
 Technical Director             
 http://www.mediaconsult.com/     ( btw: mediaconsult is hiring )
 
 --------------23269446CC34D6EBA8014F75
 Content-Type: TEXT/PLAIN; CHARSET=us-ascii; NAME="diff-1.59"
 Content-ID: <[EMAIL PROTECTED]>
 Content-Description: 
 
 Index: src/modules/standard/mod_log_config.c
 ===================================================================
 RCS file: /cvs/apache-1.3/src/modules/standard/mod_log_config.c,v
 retrieving revision 1.59
 diff -c -r1.59 mod_log_config.c
 *** mod_log_config.c   1998/05/29 08:18:51     1.59
 --- mod_log_config.c   1998/06/11 08:54:02
 ***************
 *** 215,220 ****
 --- 215,221 ----
    */
   
   typedef struct {
 +     char *default_format_string;
       array_header *default_format;
       array_header *config_logs;
       array_header *server_config_logs;
 ***************
 *** 232,237 ****
 --- 233,239 ----
   
   typedef struct {
       char *fname;
 +     char *format_string;
       array_header *format;
       int log_fd;
   #ifdef BUFFERED_LOGS
 ***************
 *** 782,787 ****
 --- 784,790 ----
       multi_log_state *mls = (multi_log_state *) ap_palloc(p, 
sizeof(multi_log_state));
   
       mls->config_logs = ap_make_array(p, 1, sizeof(config_log_state));
 +     mls->default_format_string = NULL;
       mls->default_format = NULL;
       mls->server_config_logs = NULL;
       mls->formats = ap_make_table(p, 4);
 ***************
 *** 803,808 ****
 --- 806,812 ----
   
       add->server_config_logs = base->config_logs;
       if (!add->default_format) {
 +         add->default_format_string = base->default_format_string;
           add->default_format = base->default_format;
       }
       add->formats = ap_overlay_tables(p, base->formats, add->formats);
 ***************
 *** 817,823 ****
                                 char *name)
   {
       const char *err_string = NULL;
 -     char *format;
       multi_log_state *mls = ap_get_module_config(cmd->server->module_config,
                                                &config_log_module);
   
 --- 821,826 ----
 ***************
 *** 833,846 ****
           }
       }
       else {
 !         /*
 !          * See if we were given a name rather than a format string.
 !          */
 !         format = ap_table_get(mls->formats, fmt);
 !         if (format == NULL) {
 !             format = fmt;
 !         }
 !         mls->default_format = parse_log_string(cmd->pool, format, 
&err_string);
       }
       return err_string;
   }
 --- 836,843 ----
           }
       }
       else {
 !         mls->default_format_string = fmt;
 !         mls->default_format = parse_log_string(cmd->pool, fmt, &err_string);
       }
       return err_string;
   }
 ***************
 *** 852,868 ****
       multi_log_state *mls = ap_get_module_config(cmd->server->module_config,
                                                &config_log_module);
       config_log_state *cls;
 -     char *format;
   
       cls = (config_log_state *) ap_push_array(mls->config_logs);
       cls->fname = fn;
       if (!fmt) {
           cls->format = NULL;
       }
       else {
 !         format = ap_table_get(mls->formats, fmt);
 !         format = (format != NULL) ? format : fmt;
 !         cls->format = parse_log_string(cmd->pool, format, &err_string);
       }
       cls->log_fd = -1;
   
 --- 849,863 ----
       multi_log_state *mls = ap_get_module_config(cmd->server->module_config,
                                                &config_log_module);
       config_log_state *cls;
   
       cls = (config_log_state *) ap_push_array(mls->config_logs);
       cls->fname = fn;
 +     cls->format_string = fmt;
       if (!fmt) {
           cls->format = NULL;
       }
       else {
 !         cls->format = parse_log_string(cmd->pool, fmt, &err_string);
       }
       cls->log_fd = -1;
   
 ***************
 *** 935,940 ****
 --- 930,943 ----
                                                &config_log_module);
       config_log_state *clsarray;
       const char *dummy;
 +     char *format;
 + 
 +     if (mls->default_format_string) {
 +      format = ap_table_get(mls->formats, mls->default_format_string);
 +      if (format) {
 +          mls->default_format = parse_log_string(p, format, &dummy);
 +      }
 +     }    
   
       if (!mls->default_format) {
           mls->default_format = parse_log_string(p, DEFAULT_LOG_FORMAT, 
&dummy);
 ***************
 *** 945,950 ****
 --- 948,960 ----
           for (i = 0; i < mls->config_logs->nelts; ++i) {
               config_log_state *cls = &clsarray[i];
   
 +          if (cls->format_string) {
 +              format = ap_table_get(mls->formats, cls->format_string);
 +              if (format) {
 +                  cls->format = parse_log_string(p, format, &dummy);
 +              }
 +          }
 + 
               cls = open_config_log(s, p, cls, mls->default_format);
           }
       }
 ***************
 *** 952,957 ****
 --- 962,974 ----
           clsarray = (config_log_state *) mls->server_config_logs->elts;
           for (i = 0; i < mls->server_config_logs->nelts; ++i) {
               config_log_state *cls = &clsarray[i];
 + 
 +          if (cls->format_string) {
 +              format = ap_table_get(mls->formats, cls->format_string);
 +              if (format) {
 +                  cls->format = parse_log_string(p, format, &dummy);
 +              }
 +          }
   
               cls = open_config_log(s, p, cls, mls->default_format);
           }
 
 --------------23269446CC34D6EBA8014F75
 Content-Type: TEXT/PLAIN; CHARSET=us-ascii; NAME="diff-1.60"
 Content-ID: <[EMAIL PROTECTED]>
 Content-Description: 
 
 Index: src/modules/standard/mod_log_config.c
 ===================================================================
 RCS file: /cvs/apache-1.3/src/modules/standard/mod_log_config.c,v
 retrieving revision 1.60
 diff -c -r1.60 mod_log_config.c
 *** mod_log_config.c   1998/06/09 04:36:47     1.60
 --- mod_log_config.c   1998/06/11 08:54:52
 ***************
 *** 803,810 ****
   {
       multi_log_state *base = (multi_log_state *) basev;
       multi_log_state *add = (multi_log_state *) addv;
 -     char *format;
 -     const char *dummy;
   
       add->server_config_logs = base->config_logs;
       if (!add->default_format) {
 --- 803,808 ----
 ***************
 *** 813,841 ****
       }
       add->formats = ap_overlay_tables(p, base->formats, add->formats);
   
 -     if (add->default_format_string) {
 -      format = ap_table_get(add->formats, add->default_format_string);
 -      if (format) {
 -          add->default_format = parse_log_string(p, format, &dummy);
 -      }
 -     }    
 - 
 -     if (add->config_logs) {
 -      config_log_state *clsarray = (config_log_state *) 
add->config_logs->elts;
 -      int i;
 - 
 -      for (i = 0; i < add->config_logs->nelts; ++i) {
 -          config_log_state *cls = &clsarray[i];
 - 
 -          if (cls->format_string) {
 -              format = ap_table_get(add->formats, cls->format_string);
 -              if (format) {
 -                  cls->format = parse_log_string(p, format, &dummy);
 -              }
 -          }
 -      }
 -     }
 - 
       return add;
   }
   
 --- 811,816 ----
 ***************
 *** 955,960 ****
 --- 930,943 ----
                                                &config_log_module);
       config_log_state *clsarray;
       const char *dummy;
 +     char *format;
 + 
 +     if (mls->default_format_string) {
 +      format = ap_table_get(mls->formats, mls->default_format_string);
 +      if (format) {
 +          mls->default_format = parse_log_string(p, format, &dummy);
 +      }
 +     }    
   
       if (!mls->default_format) {
           mls->default_format = parse_log_string(p, DEFAULT_LOG_FORMAT, 
&dummy);
 ***************
 *** 965,970 ****
 --- 948,960 ----
           for (i = 0; i < mls->config_logs->nelts; ++i) {
               config_log_state *cls = &clsarray[i];
   
 +          if (cls->format_string) {
 +              format = ap_table_get(mls->formats, cls->format_string);
 +              if (format) {
 +                  cls->format = parse_log_string(p, format, &dummy);
 +              }
 +          }
 + 
               cls = open_config_log(s, p, cls, mls->default_format);
           }
       }
 ***************
 *** 972,977 ****
 --- 962,974 ----
           clsarray = (config_log_state *) mls->server_config_logs->elts;
           for (i = 0; i < mls->server_config_logs->nelts; ++i) {
               config_log_state *cls = &clsarray[i];
 + 
 +          if (cls->format_string) {
 +              format = ap_table_get(mls->formats, cls->format_string);
 +              if (format) {
 +                  cls->format = parse_log_string(p, format, &dummy);
 +              }
 +          }
   
               cls = open_config_log(s, p, cls, mls->default_format);
           }
 
 --------------23269446CC34D6EBA8014F75--

Reply via email to