Return-Path: Mailing-List: contact tomcat-dev-help@jakarta.apache.org; run by ezmlm Delivered-To: mailing list tomcat-dev@jakarta.apache.org Received: (qmail 99529 invoked by uid 500); 27 Feb 2001 05:28:09 -0000 Delivered-To: apmail-jakarta-tomcat-cvs@apache.org Received: (qmail 99526 invoked by uid 1052); 27 Feb 2001 05:28:09 -0000 Date: 27 Feb 2001 05:28:09 -0000 Message-ID: <20010227052809.99525.qmail@apache.org> From: costin@apache.org To: jakarta-tomcat-cvs@apache.org Subject: cvs commit: jakarta-tomcat/src/share/org/apache/tomcat/modules/server Ajp13.java costin 01/02/26 21:28:08 Modified: src/share/org/apache/tomcat/modules/server Ajp13.java Log: Fix the buffer problem ( need 2 input, one output - not 2 output on input). Thanks again Dan. Revision Changes Path 1.16 +20 -17 jakarta-tomcat/src/share/org/apache/tomcat/modules/server/Ajp13.java Index: Ajp13.java =================================================================== RCS file: /home/cvs/jakarta-tomcat/src/share/org/apache/tomcat/modules/server/Ajp13.java,v retrieving revision 1.15 retrieving revision 1.16 diff -u -r1.15 -r1.16 --- Ajp13.java 2001/02/27 03:02:47 1.15 +++ Ajp13.java 2001/02/27 05:28:08 1.16 @@ -180,11 +180,14 @@ OutputStream out; InputStream in; - - Ajp13Packet outBuf = new Ajp13Packet( MAX_PACKET_SIZE ); - Ajp13Packet inBuf = new Ajp13Packet( MAX_PACKET_SIZE ); + + // Buffer used of output body and headers OutputBuffer headersWriter=new OutputBuffer(MAX_PACKET_SIZE); - Ajp13Packet hBuf=new Ajp13Packet(headersWriter); + Ajp13Packet outBuf = new Ajp13Packet( headersWriter ); + // Buffer used for input body + Ajp13Packet inBuf = new Ajp13Packet( MAX_PACKET_SIZE ); + // Boffer used for request head ( and headers ) + Ajp13Packet hBuf=new Ajp13Packet( MAX_PACKET_SIZE ); // Holds incoming reads of request body data (*not* header data) byte []bodyBuff = new byte[MAX_READ_SIZE]; @@ -230,16 +233,16 @@ { // XXX The return values are awful. - int err = receive(inBuf); + int err = receive(hBuf); if(err < 0) { return 500; } - int type = (int)inBuf.getByte(); + int type = (int)hBuf.getByte(); switch(type) { case JK_AJP13_FORWARD_REQUEST: - return decodeRequest(req, inBuf); + return decodeRequest(req, hBuf); case JK_AJP13_SHUTDOWN: return -2; @@ -495,28 +498,28 @@ { // XXX if more headers that MAX_SIZE, send 2 packets! - hBuf.reset(); - hBuf.appendByte(JK_AJP13_SEND_HEADERS); - hBuf.appendInt(status); + outBuf.reset(); + outBuf.appendByte(JK_AJP13_SEND_HEADERS); + outBuf.appendInt(status); - hBuf.appendString(HttpMessages.getMessage( status )); + outBuf.appendString(HttpMessages.getMessage( status )); int numHeaders = headers.size(); - hBuf.appendInt(numHeaders); + outBuf.appendInt(numHeaders); for( int i=0 ; i < numHeaders ; i++ ) { String headerName = headers.getName(i).toString(); int sc = headerNameToSc(headerName); if(-1 != sc) { - hBuf.appendInt(sc); + outBuf.appendInt(sc); } else { - hBuf.appendString(headerName); + outBuf.appendString(headerName); } - hBuf.appendString(headers.getValue(i).toString() ); + outBuf.appendString(headers.getValue(i).toString() ); } - hBuf.end(); - send(hBuf); + outBuf.end(); + send(outBuf); } /**