You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by se...@apache.org on 2002/01/26 15:14:35 UTC

cvs commit: jakarta-tomcat-connectors/jk/java/org/apache/jk/common HandlerRequest.java

seguin      02/01/26 06:14:35

  Modified:    jk/java/org/apache/jk/common HandlerRequest.java
  Log:
  port fix for bug 5861.
  
  Revision  Changes    Path
  1.3       +9 -1      jakarta-tomcat-connectors/jk/java/org/apache/jk/common/HandlerRequest.java
  
  Index: HandlerRequest.java
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat-connectors/jk/java/org/apache/jk/common/HandlerRequest.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- HandlerRequest.java	26 Jan 2002 07:25:53 -0000	1.2
  +++ HandlerRequest.java	26 Jan 2002 14:14:35 -0000	1.3
  @@ -430,6 +430,13 @@
                   msg.getInt(); // To advance the read position
                   hName = headerTransArray[hId - 1];
               } else {
  +                // reset hId -- if the header currently being read
  +                // happens to be 7 or 8 bytes long, the code below
  +                // will think it's the content-type header or the
  +                // content-length header - SC_REQ_CONTENT_TYPE=7,
  +                // SC_REQ_CONTENT_LENGTH=8 - leading to unexpected
  +                // behaviour.  see bug 5861 for more information.
  +                hId = -1;
                   msg.getBytes( tmpMB );
                   hName=tmpMB.toString();
               }
  @@ -437,11 +444,12 @@
               vMB=headers.addValue( hName );
               msg.getBytes(vMB);
   
  -            // set content length, if this is it...
               if (hId == SC_REQ_CONTENT_LENGTH) {
  +                // just read the content-length header, so set it
                   int contentLength = (vMB == null) ? -1 : vMB.getInt();
                   req.setContentLength(contentLength);
               } else if (hId == SC_REQ_CONTENT_TYPE) {
  +                // just read the content-type header, so set it
                   ByteChunk bchunk = vMB.getByteChunk();
                   req.contentType().setBytes(bchunk.getBytes(),
                                              bchunk.getOffset(),
  
  
  

--
To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>