You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by co...@apache.org on 2002/01/26 08:25:53 UTC
cvs commit: jakarta-tomcat-connectors/jk/java/org/apache/jk/common HandlerRequest.java MsgAjp.java WorkerDummy.java
costin 02/01/25 23:25:53
Modified: jk/java/org/apache/jk/common HandlerRequest.java MsgAjp.java
WorkerDummy.java
Log:
Updates ( similar with what changed on the C side ), fixes.
Revision Changes Path
1.2 +11 -14 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.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- HandlerRequest.java 31 Dec 2001 19:02:01 -0000 1.1
+++ HandlerRequest.java 26 Jan 2002 07:25:53 -0000 1.2
@@ -75,8 +75,10 @@
* Handle messages related with basic request information.
*
* This object can handle the following incoming messages:
- * - "FORWARD_REQUEST" input message ( sent when a request is passed from the web server )
- * - "RECEIVE_BODY_CHUNK" input ( sent by container to pass more body, in response to GET_BODY_CHUNK )
+ * - "FORWARD_REQUEST" input message ( sent when a request is passed from the
+ * web server )
+ * - "RECEIVE_BODY_CHUNK" input ( sent by container to pass more body, in
+ * response to GET_BODY_CHUNK )
*
* It can handle the following outgoing messages:
* - SEND_HEADERS. Pass the status code and headers.
@@ -198,7 +200,7 @@
{
}
- public void init( WorkerEnv we ) {
+ public void init() {
// register incoming message handlers
we.registerMessageType( JK_AJP13_FORWARD_REQUEST,
"JK_AJP13_FORWARD_REQUEST",
@@ -224,12 +226,6 @@
int postMsgNote=5;
int tmpBufNote=6;
- Worker w;
-
- public void setWorker( Worker w ) {
- this.w=w;
- }
-
public int callback(int type, Channel ch, Endpoint ep, Msg msg)
throws IOException
{
@@ -244,7 +240,7 @@
decodeRequest( msg, req, ch, ep );
/* XXX it should be computed from request, by workerEnv */
- w.service( req, ch, ep );
+ worker.service( req, ch, ep );
return OK;
}
@@ -256,6 +252,7 @@
// Translate the HTTP method code to a String.
byte methodCode = msg.getByte();
String mName=methodTransArray[(int)methodCode - 1];
+
req.method().setString(mName);
msg.getBytes(req.protocol());
@@ -290,12 +287,12 @@
}
/* Read present data */
- int err = postMsg.receive(ch, ep);
+ int err = ch.receive(postMsg, ep);
}
if (dL > 5) {
d(req.toString());
- }
+ }
return OK;
}
@@ -385,7 +382,7 @@
jsseCerts);
break;
- case SC_A_SSL_CIPHER :
+ case SC_A_SSL_CIPHER :
req.setSecure( true );
msg.getBytes(tmpMB);
req.setAttribute("javax.servlet.request.cipher_suite",
@@ -453,7 +450,7 @@
}
}
- private static final int dL=10;
+ private static final int dL=0;
private static void d(String s ) {
System.err.println( "HandlerRequest: " + s );
}
1.4 +21 -63 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.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- MsgAjp.java 12 Jan 2002 04:03:42 -0000 1.3
+++ MsgAjp.java 26 Jan 2002 07:25:53 -0000 1.4
@@ -90,16 +90,16 @@
*/
public class MsgAjp extends Msg {
- byte buf[]=new byte[8300];
+ private byte buf[]=new byte[8300];
// The current read or write position in the buffer
- int pos;
+ private int pos;
/**
* This actually means different things depending on whether the
* packet is read or write. For read, it's the length of the
* payload (excluding the header). For write, it's the length of
* the packet as a whole (counting the header). Oh, well.
*/
- int len;
+ private int len;
@@ -128,7 +128,15 @@
buf[2]= (byte)((dLen>>>8 ) & 0xFF );
buf[3] = (byte)(dLen & 0xFF);
}
-
+
+ public byte[] getBuffer() {
+ return buf;
+ }
+
+ public int getLen() {
+ return len;
+ }
+
// ============ Data Writing Methods ===================
/**
@@ -200,7 +208,8 @@
*/
public void appendBytes( byte b[], int off, int numBytes ) {
if( pos + numBytes >= buf.length ) {
- System.out.println("Buffer overflow " + buf.length + " " + pos + " " + numBytes );
+ System.out.println("Buffer overflow " + buf.length + " " +
+ pos + " " + numBytes );
return;
}
appendInt( numBytes );
@@ -210,7 +219,8 @@
private void cpBytes( byte b[], int off, int numBytes ) {
if( pos + numBytes >= buf.length ) {
- System.out.println("Buffer overflow " + buf.length + " " + pos + " " + numBytes );
+ System.out.println("Buffer overflow " + buf.length + " " +
+ pos + " " + numBytes );
return;
}
System.arraycopy( b, off, buf, pos, numBytes);
@@ -300,42 +310,11 @@
return b1;
}
- /**
- * Send a packet to the web server. Works for any type of message.
- *
- * @param msg A packet with accumulated data to send to the server --
- * this method will write out the length in the header.
- */
- public void send(Channel ch, Endpoint ep) throws IOException {
-
- this.end(); // Write the packet header
-
- if (dL > 5 )
- d("send() " + len + " " + buf[4] );
-
- ch.write( ep, buf, 0, len );
+ public int getHeaderLength() {
+ return 4;
}
- public int receive(Channel ch, Endpoint ep) throws IOException {
- if (dL > 0) {
- d("receive()");
- }
-
- // XXX If the length in the packet header doesn't agree with the
- // actual number of bytes read, it should probably return an error
- // value. Also, callers of this method never use the length
- // returned -- should probably return true/false instead.
-
- int rd = ch.read(ep, buf, 0, 4 );
-
- // XXX - connection closed (JK_AJP13_COMM_CLOSED)
- // - connection broken (JK_AJP13_COMM_BROKEN)
- //
- if(rd < 0) {
- // Most likely normal apache restart.
- return rd;
- }
-
+ public int processHeader() {
pos = 0;
int mark = getInt();
len = getInt();
@@ -348,30 +327,9 @@
}
if( dL > 5 )
- d( "Received " + rd + " " + len + " " + buf[0] );
-
- // XXX check if enough space - it's assert()-ed !!!
-
- int total_read = 0;
-
- total_read = ch.read(ep, buf, 4, len);
-
- if (total_read <= 0) {
- d("can't read body, waited #" + len);
- return -1;
- }
-
- if (total_read != len) {
- d( "incomplete read, waited #" + len +
- " got only " + total_read);
- return -2;
- }
-
- if (dL > 0)
- d("receive: total read = " + total_read);
- return total_read;
+ d( "Received " + len + " " + buf[0] );
+ return len;
}
-
public void dump(String msg) {
System.out.println( msg + ": " + buf + " " + pos +"/" + (len + 4));
1.3 +5 -14 jakarta-tomcat-connectors/jk/java/org/apache/jk/common/WorkerDummy.java
Index: WorkerDummy.java
===================================================================
RCS file: /home/cvs/jakarta-tomcat-connectors/jk/java/org/apache/jk/common/WorkerDummy.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- WorkerDummy.java 21 Jan 2002 20:11:52 -0000 1.2
+++ WorkerDummy.java 26 Jan 2002 07:25:53 -0000 1.3
@@ -84,19 +84,10 @@
/* ==================== Start/stop ==================== */
- /** Configuration. We'll extract and check the settings.
- * XXX We should be able to get info from the same
- * properties file as the C side, so port, etc could be
- * configured in only one place
- */
- public void validate( Properties p )
- {
- }
-
/** Initialize the worker. After this call the worker will be
* ready to accept new requests.
*/
- public void init(WorkerEnv we) throws IOException {
+ public void init() throws IOException {
headersMsgNote=we.getNoteId( WorkerEnv.ENDPOINT_NOTE, "headerMsg" );
}
@@ -124,8 +115,8 @@
msg.appendInt(0);
- msg.send( ch, ep );
- msg.dump("out:" );
+ ch.send( msg, ep );
+ // msg.dump("out:" );
msg.reset();
msg.appendByte( HandlerRequest.JK_AJP13_SEND_BODY_CHUNK);
@@ -133,13 +124,13 @@
msg.appendBytes( body );
- msg.send(ch, ep);
+ ch.send(msg, ep);
msg.reset();
msg.appendByte( HandlerRequest.JK_AJP13_END_RESPONSE );
msg.appendInt( 1 );
- msg.send(ch, ep );
+ ch.send(msg, ep );
}
private static final int dL=10;
--
To unsubscribe, e-mail: <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>