httpd-cvs mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From s.@apache.org
Subject svn commit: r1204614 - in /httpd/httpd/trunk: CHANGES docs/manual/developer/new_api_2_4.xml include/ap_mmn.h include/http_core.h include/http_log.h server/log.c
Date Mon, 21 Nov 2011 17:36:26 GMT
Author: sf
Date: Mon Nov 21 17:36:26 2011
New Revision: 1204614

URL: http://svn.apache.org/viewvc?rev=1204614&view=rev
Log:
Pass ap_errorlog_info to error_log hook.

Modified:
    httpd/httpd/trunk/CHANGES
    httpd/httpd/trunk/docs/manual/developer/new_api_2_4.xml
    httpd/httpd/trunk/include/ap_mmn.h
    httpd/httpd/trunk/include/http_core.h
    httpd/httpd/trunk/include/http_log.h
    httpd/httpd/trunk/server/log.c

Modified: httpd/httpd/trunk/CHANGES
URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/CHANGES?rev=1204614&r1=1204613&r2=1204614&view=diff
==============================================================================
--- httpd/httpd/trunk/CHANGES [utf-8] (original)
+++ httpd/httpd/trunk/CHANGES [utf-8] Mon Nov 21 17:36:26 2011
@@ -1,7 +1,7 @@
                                                          -*- coding: utf-8 -*-
 Changes with Apache 2.5.0
 
-  *) error log hook: add conn_rec as a parameter.  [Jeff Trawick]
+  *) error log hook: Pass ap_errorlog_info struct.  [Stefan Fritsch]
 
   [Apache 2.5.0-dev includes those bug fixes and changes with the
    Apache 2.4.xx tree as documented below, except as noted.]

Modified: httpd/httpd/trunk/docs/manual/developer/new_api_2_4.xml
URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/docs/manual/developer/new_api_2_4.xml?rev=1204614&r1=1204613&r2=1204614&view=diff
==============================================================================
--- httpd/httpd/trunk/docs/manual/developer/new_api_2_4.xml (original)
+++ httpd/httpd/trunk/docs/manual/developer/new_api_2_4.xml Mon Nov 21 17:36:26 2011
@@ -127,6 +127,8 @@
       <li>New function ap_get_server_name_for_url to support ipv6 literals.</li>
       <li>New function ap_register_errorlog_handler to register errorlog
           format string handlers.</li>
+      <li>Arguments of error_log hook have changed. Declaration has moved to
+          <code>http_core.h</code>.</li>
       <li>New function ap_state_query to determine if the server is in the
           initial configuration preflight phase or not. This is both easier to
           use and more correct than the old method of creating a pool userdata

Modified: httpd/httpd/trunk/include/ap_mmn.h
URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/include/ap_mmn.h?rev=1204614&r1=1204613&r2=1204614&view=diff
==============================================================================
--- httpd/httpd/trunk/include/ap_mmn.h (original)
+++ httpd/httpd/trunk/include/ap_mmn.h Mon Nov 21 17:36:26 2011
@@ -368,12 +368,14 @@
  * 20111118.0 (2.5.0-dev)  Add conn_rec to error_log hook
  * 20111118.1 (2.5.0-dev)  Add reclvl to ap_expr_eval_ctx_t
  * 20111120.0 (2.5.0-dev)  Remove parts of conn_state_t that are private to the MPM
+ * 20111121.0 (2.5.0-dev)  Pass ap_errorlog_info struct to error_log hook,
+ *                         add pool to ap_errorlog_info.
  */
 
 #define MODULE_MAGIC_COOKIE 0x41503234UL /* "AP24" */
 
 #ifndef MODULE_MAGIC_NUMBER_MAJOR
-#define MODULE_MAGIC_NUMBER_MAJOR 20111120
+#define MODULE_MAGIC_NUMBER_MAJOR 20111121
 #endif
 #define MODULE_MAGIC_NUMBER_MINOR 0                   /* 0...n */
 

Modified: httpd/httpd/trunk/include/http_core.h
URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/include/http_core.h?rev=1204614&r1=1204613&r2=1204614&view=diff
==============================================================================
--- httpd/httpd/trunk/include/http_core.h (original)
+++ httpd/httpd/trunk/include/http_core.h Mon Nov 21 17:36:26 2011
@@ -776,14 +776,17 @@ typedef struct ap_errorlog_info {
     /** r->main if r is a subrequest, otherwise equal to r */
     const request_rec *rmain;
 
-    /** name of source file where the log message was produced. */
+    /** pool passed to ap_log_perror, NULL otherwise */
+    apr_pool_t *pool;
+
+    /** name of source file where the log message was produced, NULL if N/A. */
     const char *file;
     /** line number in the source file, 0 if N/A */
     int line;
 
     /** module index of module that produced the log message, APLOG_NO_MODULE if N/A. */
     int module_index;
-    /** log level of error message, -1 if N/A */
+    /** log level of error message (flags like APLOG_STARTUP have been removed), -1 if N/A
*/
     int level;
 
     /** apr error status related to the log message, 0 if no error */
@@ -844,6 +847,19 @@ typedef struct {
     unsigned int min_loglevel;
 } ap_errorlog_format_item;
 
+/**
+ * hook method to log error messages
+ * @ingroup hooks
+ * @param info pointer to ap_errorlog_info struct which contains all
+ *        the details
+ * @param errstr message to log (unmodified
+ * @warning Allocating from the usual pools (pool, info->c->pool, info->p->pool)
+ *          must be avoided because it can cause memory leaks.
+ *          Use a subpool if necessary.
+ */
+AP_DECLARE_HOOK(void, error_log, (const ap_errorlog_info *info,
+                                  const char *errstr))
+
 AP_CORE_DECLARE(void) ap_register_log_hooks(apr_pool_t *p);
 AP_CORE_DECLARE(void) ap_register_config_hooks(apr_pool_t *p);
 

Modified: httpd/httpd/trunk/include/http_log.h
URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/include/http_log.h?rev=1204614&r1=1204613&r2=1204614&view=diff
==============================================================================
--- httpd/httpd/trunk/include/http_log.h (original)
+++ httpd/httpd/trunk/include/http_log.h Mon Nov 21 17:36:26 2011
@@ -625,26 +625,6 @@ AP_DECLARE(apr_file_t *) ap_piped_log_re
 AP_DECLARE(apr_file_t *) ap_piped_log_write_fd(piped_log *pl);
 
 /**
- * hook method to log error messages
- * @ingroup hooks
- * @param file The file in which this function is called
- * @param line The line number on which this function is called
- * @param module_index The module_index of the module generating this message
- * @param level The level of this error message
- * @param status The status code from the previous command
- * @param s The server which we are logging for
- * @param c The connection which we are logging for
- * @param r The request which we are logging for
- * @param pool Memory pool to allocate from
- * @param errstr message to log
- */
-AP_DECLARE_HOOK(void, error_log, (const char *file, int line,
-                       int module_index, int level,
-                       apr_status_t status, const server_rec *s,
-                       const conn_rec *c, const request_rec *r,
-                       apr_pool_t *pool, const char *errstr))
-
-/**
  * hook method to generate unique id for connection or request
  * @ingroup hooks
  * @param c the conn_rec of the connections

Modified: httpd/httpd/trunk/server/log.c
URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/server/log.c?rev=1204614&r1=1204613&r2=1204614&view=diff
==============================================================================
--- httpd/httpd/trunk/server/log.c (original)
+++ httpd/httpd/trunk/server/log.c Mon Nov 21 17:36:26 2011
@@ -1177,6 +1177,7 @@ static void log_error_core(const char *f
 
     info.s             = s;
     info.c             = c;
+    info.pool          = pool;
     info.file          = NULL;
     info.line          = 0;
     info.status        = 0;
@@ -1268,8 +1269,7 @@ static void log_error_core(const char *f
              * prefix and suffix.
              */
             errstr[errstr_end] = '\0';
-            ap_run_error_log(file, line, module_index, level, status, s, c, r,
-                             pool, errstr + errstr_start);
+            ap_run_error_log(&info, errstr + errstr_start);
         }
 
         *errstr = '\0';
@@ -1763,11 +1763,8 @@ AP_DECLARE(const char *) ap_parse_log_le
 }
 
 AP_IMPLEMENT_HOOK_VOID(error_log,
-                       (const char *file, int line, int module_index, int level,
-                        apr_status_t status, const server_rec *s,
-                        const conn_rec *c, const request_rec *r,
-                        apr_pool_t *pool, const char *errstr), (file, line,
-                        module_index, level, status, s, c, r, pool, errstr))
+                       (const ap_errorlog_info *info, const char *errstr),
+                       (info, errstr))
 
 AP_IMPLEMENT_HOOK_RUN_FIRST(int, generate_log_id,
                             (const conn_rec *c, const request_rec *r,



Mime
View raw message