httpd-cvs mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From cove...@apache.org
Subject svn commit: r654348 - in /httpd/httpd/branches/2.2.x: CHANGES docs/manual/mod/mod_log_config.xml modules/loggers/mod_log_config.c
Date Thu, 08 May 2008 00:34:36 GMT
Author: covener
Date: Wed May  7 17:34:36 2008
New Revision: 654348

URL: http://svn.apache.org/viewvc?rev=654348&view=rev
Log:
Merge r579425 from trunk:

mod_log_config: Add format options for %p so that the actual local
or remote port can be logged.  

PR:  43415
Submitted by: Adam Hasselbalch Hansen <ahh@one.com>
Extensively commented on and/or modified by Ruediger Pluem and Jeff Trawick


Modified:
    httpd/httpd/branches/2.2.x/CHANGES
    httpd/httpd/branches/2.2.x/docs/manual/mod/mod_log_config.xml
    httpd/httpd/branches/2.2.x/modules/loggers/mod_log_config.c

Modified: httpd/httpd/branches/2.2.x/CHANGES
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.2.x/CHANGES?rev=654348&r1=654347&r2=654348&view=diff
==============================================================================
--- httpd/httpd/branches/2.2.x/CHANGES [utf-8] (original)
+++ httpd/httpd/branches/2.2.x/CHANGES [utf-8] Wed May  7 17:34:36 2008
@@ -1,6 +1,10 @@
                                                          -*- coding: utf-8 -*-
 Changes with Apache 2.2.9
 
+  *) mod_log_config: Add format options for %p so that the actual local
+     or remote port can be logged.  PR 43415.  [Adam Hasselbalch Hansen
+     <ahh@one.com>, Ruediger Pluem, Jeff Trawick]
+
   *) mod_speling: remove regression from 1.3/2.0 behavior and
      drop dependency between mod_speling and AcceptPathInfo.
      PR 43562 [Jose Kahan <jose w3.org>]

Modified: httpd/httpd/branches/2.2.x/docs/manual/mod/mod_log_config.xml
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.2.x/docs/manual/mod/mod_log_config.xml?rev=654348&r1=654347&r2=654348&view=diff
==============================================================================
--- httpd/httpd/branches/2.2.x/docs/manual/mod/mod_log_config.xml (original)
+++ httpd/httpd/branches/2.2.x/docs/manual/mod/mod_log_config.xml Wed May  7 17:34:36 2008
@@ -127,6 +127,12 @@
     <tr><td><code>%p</code></td>
         <td>The canonical port of the server serving the request</td></tr>
 
+    <tr><td><code>%{<var>format</var>}p</code></td>
+        <td>The canonical port of the server serving the request or the
+        server's actual port or the client's actual port.  Valid formats
+        are <code>canonical</code>, <code>local</code>, or <code>remote</code>.
+        </td></tr>
+
     <tr><td><code>%P</code></td>
         <td>The process ID of the child that serviced the request.</td></tr>
 

Modified: httpd/httpd/branches/2.2.x/modules/loggers/mod_log_config.c
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.2.x/modules/loggers/mod_log_config.c?rev=654348&r1=654347&r2=654348&view=diff
==============================================================================
--- httpd/httpd/branches/2.2.x/modules/loggers/mod_log_config.c (original)
+++ httpd/httpd/branches/2.2.x/modules/loggers/mod_log_config.c Wed May  7 17:34:36 2008
@@ -90,7 +90,9 @@
  * %...l:  remote logname (from identd, if supplied)
  * %...{Foobar}n:  The contents of note "Foobar" from another module.
  * %...{Foobar}o:  The contents of Foobar: header line(s) in the reply.
- * %...p:  the port the request was served to
+ * %...p:  the canonical port for the server
+ * %...{format}p: the canonical port for the server, or the actual local
+ *                or remote port
  * %...P:  the process ID of the child that serviced the request.
  * %...{format}P: the process ID or thread ID of the child/thread that
  *                serviced the request
@@ -633,8 +635,22 @@
 
 static const char *log_server_port(request_rec *r, char *a)
 {
-    return apr_psprintf(r->pool, "%u",
-                        r->server->port ? r->server->port : ap_default_port(r));
+    apr_port_t port;
+
+    if (*a == '\0' || !strcasecmp(a, "canonical")) {
+        port = r->server->port ? r->server->port : ap_default_port(r);
+    }
+    else if (!strcasecmp(a, "remote")) {
+        port = r->connection->remote_addr->port;
+    }
+    else if (!strcasecmp(a, "local")) {
+        port = r->connection->local_addr->port;
+    }
+    else {
+        /* bogus format */
+        return a;
+    }
+    return apr_itoa(r->pool, (int)port);
 }
 
 /* This respects the setting of UseCanonicalName so that



Mime
View raw message