httpd-cvs mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From s.@apache.org
Subject svn commit: r993120 - in /httpd/httpd/trunk: CHANGES server/core.c server/log.c
Date Mon, 06 Sep 2010 18:53:39 GMT
Author: sf
Date: Mon Sep  6 18:53:38 2010
New Revision: 993120

URL: http://svn.apache.org/viewvc?rev=993120&view=rev
Log:
- Add another check during ErrorLogFormat parsing
- Simplify code (including Ruediger's suggestions)

Modified:
    httpd/httpd/trunk/CHANGES
    httpd/httpd/trunk/server/core.c
    httpd/httpd/trunk/server/log.c

Modified: httpd/httpd/trunk/CHANGES
URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/CHANGES?rev=993120&r1=993119&r2=993120&view=diff
==============================================================================
--- httpd/httpd/trunk/CHANGES [utf-8] (original)
+++ httpd/httpd/trunk/CHANGES [utf-8] Mon Sep  6 18:53:38 2010
@@ -5,7 +5,7 @@ Changes with Apache 2.3.9
   *) core: Add ErrorLogFormat to allow configuring error log format, including
      additional information that is logged once per connection or request. Add
      error log IDs for connections and request to allow correlating error log
-     lines and the corresponding access log entry.
+     lines and the corresponding access log entry. [Stefan Fritsch]
 
   *) core: Disable sendfile by default. [Stefan Fritsch]
 

Modified: httpd/httpd/trunk/server/core.c
URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/server/core.c?rev=993120&r1=993119&r2=993120&view=diff
==============================================================================
--- httpd/httpd/trunk/server/core.c (original)
+++ httpd/httpd/trunk/server/core.c Mon Sep  6 18:53:38 2010
@@ -3272,6 +3272,10 @@ static apr_array_header_t *parse_errorlo
             }
             seen_msg_fmt = 1;
         }
+        if (want_msg_fmt && item->flags & AP_ERRORLOG_FLAG_REQUIRED) {
+            *err = "The '+' flag cannot be used in the main error log format";
+            return NULL;
+        }
     }
 
     if (want_msg_fmt && !seen_msg_fmt) {
@@ -3299,7 +3303,7 @@ static const char *set_errorlog_format(c
                                                   sizeof(apr_array_header_t *));
         }
 
-        if (arg2 && *arg2) {
+        if (*arg2) {
             apr_array_header_t **e;
             e = (apr_array_header_t **) apr_array_push(conf->error_log_conn);
             *e = parse_errorlog_string(cmd->pool, arg2, &err_string, 0);
@@ -3311,7 +3315,7 @@ static const char *set_errorlog_format(c
                                                  sizeof(apr_array_header_t *));
         }
 
-        if (arg2 && *arg2) {
+        if (*arg2) {
             apr_array_header_t **e;
             e = (apr_array_header_t **) apr_array_push(conf->error_log_req);
             *e = parse_errorlog_string(cmd->pool, arg2, &err_string, 0);

Modified: httpd/httpd/trunk/server/log.c
URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/server/log.c?rev=993120&r1=993119&r2=993120&view=diff
==============================================================================
--- httpd/httpd/trunk/server/log.c (original)
+++ httpd/httpd/trunk/server/log.c Mon Sep  6 18:53:38 2010
@@ -712,25 +712,24 @@ static int log_apr_status(const ap_error
                           char *buf, int buflen)
 {
     apr_status_t status = info->status;
-    int len = 0;
+    int len;
     if (!status)
         return 0;
 
     if (status < APR_OS_START_EAIERR) {
-        len += apr_snprintf(buf + len, buflen - len,
-                            "(%d)", status);
+        len = apr_snprintf(buf, buflen, "(%d)", status);
     }
     else if (status < APR_OS_START_SYSERR) {
-        len += apr_snprintf(buf + len, buflen - len,
-                            "(EAI %d)", status - APR_OS_START_EAIERR);
+        len = apr_snprintf(buf, buflen, "(EAI %d)",
+                           status - APR_OS_START_EAIERR);
     }
     else if (status < 100000 + APR_OS_START_SYSERR) {
-        len += apr_snprintf(buf + len, buflen - len,
-                            "(OS %d)", status - APR_OS_START_SYSERR);
+        len = apr_snprintf(buf, buflen, "(OS %d)",
+                           status - APR_OS_START_SYSERR);
     }
     else {
-        len += apr_snprintf(buf + len, buflen - len,
-                            "(os 0x%08x)", status - APR_OS_START_SYSERR);
+        len = apr_snprintf(buf, buflen, "(os 0x%08x)",
+                           status - APR_OS_START_SYSERR);
     }
     apr_strerror(status, buf + len, buflen - len);
     len += strlen(buf + len);
@@ -813,7 +812,7 @@ static void add_log_id(const conn_rec *c
         id ^= tmp;
     }
 #if APR_HAS_THREADS
-    if (c) {
+    {
         apr_uintptr_t tmp2 = (apr_uintptr_t)c->current_thread;
         tmp = tmp2;
         tmp = tmp << 32;
@@ -821,14 +820,15 @@ static void add_log_id(const conn_rec *c
     }
 #endif
 
-    /*
-     * The apr-util docs wrongly states encoded strings are not 0-terminated.
-     * Let's be save and allocate an additional byte.
-     */
-    len = 1 + apr_base64_encode_len(sizeof(id));
+    len = apr_base64_encode_len(sizeof(id));
     encoded = apr_palloc(r ? r->pool : c->pool, len);
     apr_base64_encode(encoded, (char *)&id, sizeof(id));
-    encoded[11] = '\0'; /* omit last char which is always '=' */
+
+    /*
+     * Only the first 11 chars are significant, the last (12th) char is
+     * always '='.
+     */
+    encoded[11] = '\0'; 
 
     /* need to cast const away */
     if (r) {



Mime
View raw message