]> git.ipfire.org Git - thirdparty/apache/httpd.git/commitdiff
fix LA-U lookaheads in directory context.
authorAndré Malo <nd@apache.org>
Sat, 17 May 2003 22:28:23 +0000 (22:28 +0000)
committerAndré Malo <nd@apache.org>
Sat, 17 May 2003 22:28:23 +0000 (22:28 +0000)
I'm wondering if this ever worked ...

PR: 8493 (related to)

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@99902 13f79535-47bb-0310-9956-ffa450edef68

CHANGES
modules/mappers/mod_rewrite.c

diff --git a/CHANGES b/CHANGES
index 7861c53431de2d3843ee619cd92e81b313435c05..8582c1bc86b74132df208981a7f35eed6d6b65ab 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -2,6 +2,9 @@ Changes with Apache 2.1.0-dev
 
   [Remove entries to the current 2.0 section below, when backported]
 
+  *) mod_rewrite: Fix LA-U variable look ahead which didn't work correctly
+     in directory context. Related to PR 8493.  [André Malo]
+
   *) Add a delete flag to htpasswd.
      [Thom May]
 
index 0c7db0fd6224366ee8ca600d0487eb78aac54c3b..0e63f5597061fa06326f2979c03da76e58fc63af 100644 (file)
@@ -3885,10 +3885,10 @@ static char *lookup_variable(request_rec *r, char *var)
         }
     }
 
-#define LOOKAHEAD(subrecfunc) \
+#define LOOKAHEAD(subrecfunc, input) \
         if ( \
           /* filename is safe to use */ \
-          r->filename != NULL \
+          (input) != NULL \
               /* - and we're either not in a subrequest */ \
               && ( r->main == NULL \
                   /* - or in a subrequest where paths are non-NULL... */ \
@@ -3896,7 +3896,7 @@ static char *lookup_variable(request_rec *r, char *var)
                         /*   ...and sub and main paths differ */ \
                         && strcmp(r->main->uri, r->uri) != 0))) { \
             /* process a file-based subrequest */ \
-            rsub = subrecfunc(r->filename, r, NULL); \
+            rsub = subrecfunc((input), r, NULL); \
             /* now recursively lookup the variable in the sub_req */ \
             result = lookup_variable(rsub, var+5); \
             /* copy it up to our scope before we destroy sub_req's apr_pool_t */ \
@@ -3905,18 +3905,18 @@ static char *lookup_variable(request_rec *r, char *var)
             ap_destroy_sub_req(rsub); \
             /* log it */ \
             rewritelog(r, 5, "lookahead: path=%s var=%s -> val=%s", \
-                       r->filename, var+5, result); \
+                       (input), var+5, result); \
             /* return ourself to prevent re-pstrdup */ \
             return (char *)result; \
         }
 
     /* look-ahead for parameter through URI-based sub-request */
     else if (strlen(var) > 5 && strncasecmp(var, "LA-U:", 5) == 0) {
-        LOOKAHEAD(ap_sub_req_lookup_uri)
+        LOOKAHEAD(ap_sub_req_lookup_uri, r->uri)
     }
     /* look-ahead for parameter through file-based sub-request */
     else if (strlen(var) > 5 && strncasecmp(var, "LA-F:", 5) == 0) {
-        LOOKAHEAD(ap_sub_req_lookup_file)
+        LOOKAHEAD(ap_sub_req_lookup_file, r->filename)
     }
 
     /* file stuff */