httpd-cvs mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From c...@hyperreal.org
Subject cvs commit: apache-1.3/htdocs/manual/mod mod_log_config.html
Date Sat, 20 Feb 1999 00:13:30 GMT
coar        99/02/19 16:13:29

  Modified:    src      CHANGES
               src/modules/standard mod_log_config.c
               htdocs/manual/mod mod_log_config.html
  Log:
  	Remove the ReferIgnore directive from mod_log_config (Dean's veto).
  	Get rid of the array for the 'env=' clause, since it only takes
  	a single variable name; use a char * instead.  Check for conditional
  	envars by seeing if the condition string is non-NULL rather than
  	using a separate Boolean cell.
  
  Revision  Changes    Path
  1.1253    +3 -3      apache-1.3/src/CHANGES
  
  Index: CHANGES
  ===================================================================
  RCS file: /home/cvs/apache-1.3/src/CHANGES,v
  retrieving revision 1.1252
  retrieving revision 1.1253
  diff -u -r1.1252 -r1.1253
  --- CHANGES	1999/02/19 16:25:33	1.1252
  +++ CHANGES	1999/02/20 00:13:21	1.1253
  @@ -10,9 +10,9 @@
        characters in the range 0x80 to 0xff (for example accented characters).
        [Paul Sutton] PR#3890
   
  -  *) Added RefererIgnore and conditional logging based upon environment
  -     variables to mod_log_config.  mod_log_referer and mod_log_agent
  -     are now deprecated.[Ken Coar]
  +  *) Added conditional logging based upon environment variables to
  +     mod_log_config.  mod_log_referer and mod_log_agent
  +     are now deprecated.  [Ken Coar]
   
     *) Allow apache acting as a proxy server to relay the real
        reason of a failure to a client rather than the "internal
  
  
  
  1.75      +20 -65    apache-1.3/src/modules/standard/mod_log_config.c
  
  Index: mod_log_config.c
  ===================================================================
  RCS file: /home/cvs/apache-1.3/src/modules/standard/mod_log_config.c,v
  retrieving revision 1.74
  retrieving revision 1.75
  diff -u -r1.74 -r1.75
  --- mod_log_config.c	1999/02/18 19:28:21	1.74
  +++ mod_log_config.c	1999/02/20 00:13:27	1.75
  @@ -106,8 +106,8 @@
    *   CustomLog   logs/referer  "%{referer}i -> %U"
    *   CustomLog   logs/agent    "%{user-agent}i"
    *
  - * Except: no RefererIgnore functionality
  - *         logs '-' if no Referer or User-Agent instead of nothing
  + * RefererIgnore functionality can be obtained with conditional
  + * logging (SetEnvIf and CustomLog ... env=!VAR).
    *
    * But using this method allows much easier modification of the
    * log format, e.g. to log hosts along with UA:
  @@ -219,8 +219,6 @@
       array_header *config_logs;
       array_header *server_config_logs;
       table *formats;
  -    int ignore_referers;
  -    array_header *referer_list;
   } multi_log_state;
   
   /*
  @@ -237,8 +235,7 @@
       char *format_string;
       array_header *format;
       int log_fd;
  -    int conditions;
  -    array_header *condition_list;
  +    char *condition_var;
   #ifdef BUFFERED_LOGS
       int outcnt;
       char outbuf[LOG_BUFSIZE];
  @@ -693,6 +690,7 @@
       int i;
       int len = 0;
       array_header *format;
  +    char *envar;
   
       if (cls->fname == NULL) {
           return DECLINED;
  @@ -702,19 +700,16 @@
        * See if we've got any conditional envariable-controlled logging decisions
        * to make.
        */
  -    if (cls->conditions != 0) {
  -	char **candidates = (char **) cls->condition_list->elts;
  -	for (i = 0; i < cls->condition_list->nelts; ++i) {
  -	    char *envname = candidates[i];
  -	    if (*envname != '!') {
  -		if (ap_table_get(r->subprocess_env, envname) == NULL) {
  -		    return DECLINED;
  -		}
  +    if (cls->condition_var != NULL) {
  +	envar = cls->condition_var;
  +	if (*envar != '!') {
  +	    if (ap_table_get(r->subprocess_env, envar) == NULL) {
  +		return DECLINED;
   	    }
  -	    else {
  -		if (ap_table_get(r->subprocess_env, &envname[1]) != NULL) {
  -		    return DECLINED;
  -		}
  +	}
  +	else {
  +	    if (ap_table_get(r->subprocess_env, &envar[1]) != NULL) {
  +		return DECLINED;
   	    }
   	}
       }
  @@ -781,22 +776,8 @@
       config_log_state *clsarray;
       int i;
   
  -    /*
  -     * See if there are any Referer: values we're supposed to ignore.
  -     */
  -    if (mls->ignore_referers != 0) {
  -	const char *referer = ap_table_get(r->headers_in, "Referer");
  -	if (referer != NULL) {
  -	    char **candidate = (char **) mls->referer_list->elts;
  -	    for (i = 0; i < mls->referer_list->nelts; ++i) {
  -		if (strstr(referer, candidate[i]) != NULL) {
  -		    return DECLINED;
  -		}
  -	    }
  -	}
  -    }
       /*
  -     * Continue and log this transaction..
  +     * Log this transaction..
        */
       if (mls->config_logs->nelts) {
           clsarray = (config_log_state *) mls->config_logs->elts;
  @@ -834,8 +815,6 @@
       mls->server_config_logs = NULL;
       mls->formats = ap_make_table(p, 4);
       ap_table_setn(mls->formats, "CLF", DEFAULT_LOG_FORMAT);
  -    mls->ignore_referers = 0;
  -    mls->referer_list = NULL;
   
       return mls;
   }
  @@ -857,12 +836,6 @@
           add->default_format = base->default_format;
       }
       add->formats = ap_overlay_tables(p, base->formats, add->formats);
  -    add->ignore_referers = (add->ignore_referers != 0)
  -                           ? add->ignore_referers
  -	                   : base->ignore_referers;
  -    if (base->ignore_referers != 0) {
  -	ap_array_cat(add->referer_list, base->referer_list);
  -    }
   
       return add;
   }
  @@ -895,21 +868,6 @@
       return err_string;
   }
   
  -static const char *add_referer_ignore(cmd_parms *cmd, void *mconfig,
  -				      char *word1)
  -{
  -    multi_log_state *mls = ap_get_module_config(cmd->server->module_config,
  -						&config_log_module);
  -    char **ignore_uri;
  -
  -    mls->ignore_referers++;
  -    if (mls->referer_list == NULL) {
  -	mls->referer_list = ap_make_array(cmd->pool, 4, sizeof(char *));
  -    }
  -    ignore_uri = (char **) ap_push_array(mls->referer_list);
  -    *ignore_uri = ap_pstrdup(cmd->pool, word1);
  -    return NULL;
  -}
   
   static const char *add_custom_log(cmd_parms *cmd, void *dummy, char *fn,
                                     char *fmt, char *envclause)
  @@ -920,17 +878,16 @@
       config_log_state *cls;
   
       cls = (config_log_state *) ap_push_array(mls->config_logs);
  -    cls->conditions = 0;
  +    cls->condition_var = NULL;
       if (envclause != NULL) {
  -	char **env_condition;
  -
   	if (strncasecmp(envclause, "env=", 4) != 0) {
   	    return "error in condition clause";
  +	}
  +	if ((envclause[4] == '\0')
  +	    || ((envclause[4] == '!') && (envclause[5] == '\0'))) {
  +	    return "missing environment variable name";
   	}
  -	cls->condition_list = ap_make_array(cmd->pool, 4, sizeof(char *));
  -	env_condition = (char **) ap_push_array(cls->condition_list);
  -	*env_condition = ap_pstrdup(cmd->pool, &envclause[4]);
  -	cls->conditions++;
  +	cls->condition_var = ap_pstrdup(cmd->pool, &envclause[4]);
       }
   
       cls->fname = fn;
  @@ -967,8 +924,6 @@
        "a log format string (see docs) and an optional format name"},
       {"CookieLog", set_cookie_log, NULL, RSRC_CONF, TAKE1,
        "the filename of the cookie log"},
  -    {"RefererIgnore", add_referer_ignore, NULL, RSRC_CONF, ITERATE,
  -     "referer URLs to ignore"},
       {NULL}
   };
   
  
  
  
  1.30      +4 -54     apache-1.3/htdocs/manual/mod/mod_log_config.html
  
  Index: mod_log_config.html
  ===================================================================
  RCS file: /home/cvs/apache-1.3/htdocs/manual/mod/mod_log_config.html,v
  retrieving revision 1.29
  retrieving revision 1.30
  diff -u -r1.29 -r1.30
  --- mod_log_config.html	1999/02/17 23:28:11	1.29
  +++ mod_log_config.html	1999/02/20 00:13:29	1.30
  @@ -54,13 +54,11 @@
   basis.
   
   <LI>Beginning with Apache 1.3.5, the mod_log_config module has
  -also subsumed the <CODE>RefererIgnore</CODE> directive from
  -<A HREF="mod_log_referer.html">mod_log_referer</A>.  The use
  -of <CODE>RefererIgnore</CODE> is deprecated, and should be
  -replaced by combinations of
  +also subsumed the <CODE>RefererIgnore</CODE> functionality from
  +<A HREF="mod_log_referer.html">mod_log_referer</A>.  The effect
  +of <CODE>RefererIgnore</CODE> can be achieved by combinations of
   <A HREF="mod_setenvif.html"><CODE>SetEnvIf</CODE></A> directives
  -and environment variable controlled <CODE>CustomLog</CODE>
  -definitions.
  +and conditional <CODE>CustomLog</CODE> definitions.
   
   </UL>
   
  @@ -214,7 +212,6 @@
   <LI><A HREF="#customlog">CustomLog</A>
   <LI><A HREF="#customlog-conditional">CustomLog (conditional)</A>
   <LI><A HREF="#logformat">LogFormat</A>
  -<LI><A HREF="#refererignore">RefererIgnore</A>
   <LI><A HREF="#transferlog">TransferLog</A>
   </UL>
   <HR>
  @@ -401,53 +398,6 @@
   </P>
   
   <HR>
  -<H2><A NAME="refererignore">RefererIgnore</A></H2>
  -<A
  - HREF="directive-dict.html#Syntax"
  - REL="Help"
  -><STRONG>Syntax:</STRONG></A> RefererIgnore <EM>string string
...</EM><BR>
  -<A
  - HREF="directive-dict.html#Context"
  - REL="Help"
  -><STRONG>Context:</STRONG></A> server config, virtual host<BR>
  -<A
  - HREF="directive-dict.html#Status"
  - REL="Help"
  -><STRONG>Status:</STRONG></A> Base<BR>
  -<A
  - HREF="directive-dict.html#Compatibility"
  - REL="Help"
  -><STRONG>Compatibility:</STRONG></A>> Only available in Apache
1.3.5
  -    or later
  -<BR>
  -<A
  - HREF="directive-dict.html#Module"
  - REL="Help"
  -><STRONG>Module:</STRONG></A> mod_log_config
  -
  -<P>
  -The RefererIgnore directive adds to the list of strings to ignore in
  -Referer headers. If any of the strings in the list is contained in
  -the Referer header, then no referrer information will be logged for the
  -request. Example:
  -</P>
  -<PRE>
  -    RefererIgnore www.ncsa.uiuc.edu
  -</PRE>
  -<P>
  -will avoid logging references from www.ncsa.uiuc.edu.
  -</P>
  -<P>
  -<STRONG>Note:</STRONG> <EM>All</EM> transaction logfiles
  -(defined by <CODE>CustomLog</CODE> or <CODE>TransferLog</CODE>)
in
  -the same server scope as the <CODE>RefererIgnore</CODE> (<EM>e.g.</EM>,
  -in the same <CODE>&lt;VirtualHost&gt;</CODE> container)
  -are affected by
  -this directive.  If you want to control this behaviour on a
  -<EM>per</EM>-logfile basis, you should use the
  -<A HREF="#customlog-conditional">conditional <SAMP>CustomLog</SAMP></A>
  -capability.
  -</P>
   <HR>
   
   <H2><A NAME="transferlog">TransferLog</A></H2>
  
  
  

Mime
View raw message