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);
}
/**
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, email: [EMAIL PROTECTED]