Author: markt
Date: Fri Nov 24 15:52:35 2006
New Revision: 479051

URL: http://svn.apache.org/viewvc?view=rev&rev=479051
Log:
Fix bug 41008. Enable POST to be used with indexed queries. Patch provided by 
Chris Halstead.

Modified:
    
tomcat/container/tc5.5.x/catalina/src/share/org/apache/catalina/servlets/CGIServlet.java
    tomcat/container/tc5.5.x/webapps/docs/changelog.xml

Modified: 
tomcat/container/tc5.5.x/catalina/src/share/org/apache/catalina/servlets/CGIServlet.java
URL: 
http://svn.apache.org/viewvc/tomcat/container/tc5.5.x/catalina/src/share/org/apache/catalina/servlets/CGIServlet.java?view=diff&rev=479051&r1=479050&r2=479051
==============================================================================
--- 
tomcat/container/tc5.5.x/catalina/src/share/org/apache/catalina/servlets/CGIServlet.java
 (original)
+++ 
tomcat/container/tc5.5.x/catalina/src/share/org/apache/catalina/servlets/CGIServlet.java
 Fri Nov 24 15:52:35 2006
@@ -807,30 +807,22 @@
                 this.pathInfo = this.servletPath;
             }
             
-            // If request is HEAD or GET and Query String does not contain
-            // an unencoded "=" this is an indexed query. Parsed Query String
-            // forms command line parameters for cgi command.
-            if (!"GET".equals(req.getMethod()) &&
-                    !"HEAD".equals(req.getMethod()))
-                return;
-            
-            String qs = req.getQueryString();
-            
-            if (qs == null || qs.indexOf("=")>0)
-                return;
-            
-            int delimIndex = 0;
-            int lastDelimIndex = 0;
-            delimIndex = qs.indexOf("+");
-            
-            while (delimIndex >0) {
-                cmdLineParameters.add(URLDecoder.decode(qs.substring(
-                        lastDelimIndex,delimIndex),parameterEncoding));
-                lastDelimIndex = delimIndex + 1;
-                delimIndex = qs.indexOf("+",lastDelimIndex);
+            // If the request method is GET, POST or HEAD and the query string
+            // does not contain an unencoded "=" this is an indexed query.
+            // The parsed query string becomes the command line parameters
+            // for the cgi command.
+            if (req.getMethod().equals("GET")
+                || req.getMethod().equals("POST")
+                || req.getMethod().equals("HEAD")) {
+                String qs = req.getQueryString();
+                if (qs != null && qs.indexOf("=") == -1) {
+                    StringTokenizer qsTokens = new StringTokenizer(qs, "+");
+                    while ( qsTokens.hasMoreTokens() ) {
+                        
cmdLineParameters.add(URLDecoder.decode(qsTokens.nextToken(),
+                                              parameterEncoding));
+                    }
+                }
             }
-            cmdLineParameters.add(URLDecoder.decode(qs.substring(
-                    lastDelimIndex),parameterEncoding));
         }
 
 

Modified: tomcat/container/tc5.5.x/webapps/docs/changelog.xml
URL: 
http://svn.apache.org/viewvc/tomcat/container/tc5.5.x/webapps/docs/changelog.xml?view=diff&rev=479051&r1=479050&r2=479051
==============================================================================
--- tomcat/container/tc5.5.x/webapps/docs/changelog.xml (original)
+++ tomcat/container/tc5.5.x/webapps/docs/changelog.xml Fri Nov 24 15:52:35 2006
@@ -128,6 +128,10 @@
         <bug>40929</bug>: Correct JavaDoc for StandardCalssLoader. (markt)
       </fix>
       <fix>
+        <bug>41008</bug>: Allow POST to be used for indexed queries with CGI
+        Servlet. Patch provided by Chris Halstead. (markt)
+      </fix>
+      <fix>
         <bug>41020</bug>: Improve error message when custom error report Valve
         fails to load. Also remove requirement that custom error report Valves
         extend ValveBase. (markt)



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to