]> granicus.if.org Git - apache/commitdiff
Keep focus of ITERATE and ITERATE2 on the current module when
authorGeoffrey Young <geoff@apache.org>
Fri, 30 Jan 2004 19:43:38 +0000 (19:43 +0000)
committerGeoffrey Young <geoff@apache.org>
Fri, 30 Jan 2004 19:43:38 +0000 (19:43 +0000)
the module chooses to return DECLINE_CMD for the directive.
PR: 22299

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

CHANGES
server/config.c

diff --git a/CHANGES b/CHANGES
index d7ee5f2ded87272d03eccb28ec4cd45ee7e7a700..b8a622e6dd8808068970586a7d15f6be9fd1388d 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -2,9 +2,13 @@ Changes with Apache 2.1.0-dev
 
   [Remove entries to the current 2.0 section below, when backported]
 
+  *) Keep focus of ITERATE and ITERATE2 on the current module when
+     the module chooses to return DECLINE_CMD for the directive.
+     PR 22299.  [Geoffrey Young <geoff apache.org>]
+
   *) Allow mod_auth_digest to work with sub-requests with different
      methods than the original request.  PR 25040.
-     [Josh Dady <jpd@indecisive.com>]
+     [Josh Dady <jpd indecisive.com>]
 
   *) Fixed file extensions for real media files and removed rpm extension
      from mime.types. PR 26079.  [Allan Sandfeld <kde carewolf.com>]
index 3fe65ad5ce9fa59b5abed8e5cccddb4255329d51..92e4db9bdc3ddf1f149783d178f83c3418b97850 100644 (file)
@@ -697,7 +697,7 @@ static const char *invoke_cmd(const command_rec *cmd, cmd_parms *parms,
                               void *mconfig, const char *args)
 {
     char *w, *w2, *w3;
-    const char *errmsg;
+    const char *errmsg = NULL;
 
     if ((parms->override & cmd->req_override) == 0)
         return apr_pstrcat(parms->pool, cmd->name, " not allowed here", NULL);
@@ -797,11 +797,14 @@ static const char *invoke_cmd(const command_rec *cmd, cmd_parms *parms,
 
     case ITERATE:
         while (*(w = ap_getword_conf(parms->pool, &args)) != '\0') {
-            if ((errmsg = cmd->AP_TAKE1(parms, mconfig, w)))
+
+            errmsg = cmd->AP_TAKE1(parms, mconfig, w);
+
+            if (errmsg && strcmp(errmsg, DECLINE_CMD) != 0)
                 return errmsg;
         }
 
-        return NULL;
+        return errmsg;
 
     case ITERATE2:
         w = ap_getword_conf(parms->pool, &args);
@@ -812,11 +815,14 @@ static const char *invoke_cmd(const command_rec *cmd, cmd_parms *parms,
                                cmd->errmsg ? ", " : NULL, cmd->errmsg, NULL);
 
         while (*(w2 = ap_getword_conf(parms->pool, &args)) != '\0') {
-            if ((errmsg = cmd->AP_TAKE2(parms, mconfig, w, w2)))
+
+            errmsg = cmd->AP_TAKE2(parms, mconfig, w, w2);
+
+            if (errmsg && strcmp(errmsg, DECLINE_CMD) != 0)
                 return errmsg;
         }
 
-        return NULL;
+        return errmsg;
 
     case FLAG:
         w = ap_getword_conf(parms->pool, &args);