costin      02/01/06 00:46:10

  Modified:    jk/java/org/apache/jk/common MsgAjp.java
  Log:
  Added support for ByteChunk. Few fixes.
  
  Revision  Changes    Path
  1.2       +29 -5     
jakarta-tomcat-connectors/jk/java/org/apache/jk/common/MsgAjp.java
  
  Index: MsgAjp.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-tomcat-connectors/jk/java/org/apache/jk/common/MsgAjp.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- MsgAjp.java       31 Dec 2001 19:02:01 -0000      1.1
  +++ MsgAjp.java       6 Jan 2002 08:46:10 -0000       1.2
  @@ -67,7 +67,7 @@
   import java.security.*;
   
   import org.apache.tomcat.util.http.MimeHeaders;
  -import org.apache.tomcat.util.buf.MessageBytes;
  +import org.apache.tomcat.util.buf.*;
   import org.apache.tomcat.util.http.HttpMessages;
   import org.apache.tomcat.util.buf.HexUtils;
   
  @@ -167,10 +167,24 @@
               return;
           }
   
  -        byte[] bytes = mb.getByteChunk().getBytes();
  -        int start=mb.getByteChunk().getStart();
  -        appendInt( mb.getLength() );
  -        appendBytes(bytes, start, mb.getLength());
  +        // XXX Convert !!
  +        ByteChunk bc= mb.getByteChunk();
  +        appendByteChunk(bc);
  +    }
  +
  +    public void appendByteChunk(ByteChunk bc) throws IOException {
  +        if(bc==null || bc.isNull() ) {
  +            appendInt( 0);
  +            appendByte(0);
  +            return;
  +        }
  +
  +        byte[] bytes = bc.getBytes();
  +        int start=bc.getStart();
  +        appendInt( bc.getLength() );
  +        System.out.println("XXX appending" + bytes + " " + bc.getLength() +
  +                           " " + new String( bytes, 0, bc.getLength()));
  +        cpBytes(bytes, start, bc.getLength());
           appendByte(0);
       }
   
  @@ -186,6 +200,16 @@
        * @param len The number of bytes to copy.  
        */
       public void appendBytes( byte b[], int off, int numBytes ) {
  +        if( pos + numBytes >= buf.length ) {
  +            System.out.println("Buffer overflow " + buf.length + " " + pos + " " + 
numBytes );
  +            return;
  +        }
  +        appendInt( numBytes );
  +        cpBytes( b, off, numBytes );
  +        appendByte(0);
  +    }
  +    
  +    private void cpBytes( byte b[], int off, int numBytes ) {
           if( pos + numBytes >= buf.length ) {
               System.out.println("Buffer overflow " + buf.length + " " + pos + " " + 
numBytes );
               return;
  
  
  

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

Reply via email to