]> granicus.if.org Git - apache/commitdiff
Merge r1563418 from trunk:
authorJim Jagielski <jim@apache.org>
Mon, 10 Feb 2014 18:54:23 +0000 (18:54 +0000)
committerJim Jagielski <jim@apache.org>
Mon, 10 Feb 2014 18:54:23 +0000 (18:54 +0000)
Add %{CONN_REMOTE_ADDR} to mod_rewrite. PR56094

Submitted By: Edward Lu <Chaosed0 gmail com>
Committed By: covener

Submitted by: covener
Reviewed/backported by: jim

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.4.x@1566702 13f79535-47bb-0310-9956-ffa450edef68

CHANGES
STATUS
docs/manual/mod/mod_rewrite.xml
modules/mappers/mod_rewrite.c

diff --git a/CHANGES b/CHANGES
index c2c9aa01da99b5d2df0cb3fb201bcbaa18ddd224..8692db89d5409e88883f91217904bfe556b1aed4 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -2,6 +2,9 @@
 
 Changes with Apache 2.4.8
 
+  *) mod_rewrite: Add %{CONN_REMOTE_ADDR} as the non-useragent counterpart to
+     %{REMOTE_ADDR}. PR 56094. [Edward Lu <Chaosed0 gmail com>]
+
   *) WinNT MPM: If ap_run_pre_connection() fails or sets c->aborted, don't
      save the socket for reuse by the next worker as if it were an 
      APR_SO_DISCONNECTED socket. Restores 2.2 behavior. [Eric Covener]
diff --git a/STATUS b/STATUS
index e682ead45541a93d84166c2ac42ed7975cd85c0d..521fffe63b56c128768862c83ee6cbb4da23cd58 100644 (file)
--- a/STATUS
+++ b/STATUS
@@ -98,13 +98,6 @@ RELEASE SHOWSTOPPERS:
 PATCHES ACCEPTED TO BACKPORT FROM TRUNK:
   [ start all new proposals below, under PATCHES PROPOSED. ]
 
-   * mod_rewrite: Add %{CONN_REMOTE_ADDR} to mod_rewrite PR56094
-     trunk patch: https://svn.apache.org/r1563418
-     2.4.x patch: trunk works
-     +1: covener, jim, mrumph
-     mrumph: Verified the change against comment 1 in PR 55886.
-             Also, verified the source change against log_remote_address()
-             in modules/loggers/mod_log_config.c in both trunk and 2.4.x.
 
 
 PATCHES PROPOSED TO BACKPORT FROM TRUNK:
index 4e7a54fea6a44a7000dbd4fc3a85236e8d4de0a3..2c76a94efa8e595128b2d4789de841462346cc11 100644 (file)
@@ -446,6 +446,7 @@ Alias /myapp /opt/myapp-1.2.3
 
               <td>
                  REMOTE_ADDR<br />
+                 CONN_REMOTE_ADDR<br />
                  REMOTE_HOST<br />
                  REMOTE_PORT<br />
                  REMOTE_USER<br />
@@ -574,6 +575,14 @@ Alias /myapp /opt/myapp-1.2.3
                   "http" or "https"). This value can be influenced with
                   <directive module="core">ServerName</directive>.</dd>
 
+                  <dt><code>REMOTE_ADDR</code></dt>
+                  <dd>The IP address of the remote host (see the
+                  <module>mod_remoteip</module> module).</dd>
+
+                  <dt><code>CONN_REMOTE_ADDR</code></dt>
+                  <dd>Since 2.4.8: The peer IP address of the connection (see the
+                  <module>mod_remoteip</module> module).</dd>
+
                 </dl>
 </note>
         </li>
index 9a63bdc1b5d593ba99f42d684169f23c3a683222..e1903e5cbaaca8e379f8f31b86564b29778a3323 100644 (file)
@@ -2139,7 +2139,10 @@ static char *lookup_variable(char *var, rewrite_ctx *ctx)
             break;
 
         case 16:
-            if (!strcmp(var, "REQUEST_FILENAME")) {
+            if (*var == 'C' && !strcmp(var, "CONN_REMOTE_ADDR")) {
+                result = r->connection->client_ip;
+            }
+            else if (!strcmp(var, "REQUEST_FILENAME")) {
                 result = r->filename; /* same as script_filename (15) */
             }
             break;