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]