costin 01/11/26 08:59:54
Modified: jk/java/org/apache/ajp/tomcat33 Ajp14Interceptor.java
Log:
Now ajp14 is implemented by creating a NegotiationHandler and registering it, and
setting Ajp13 in 'require auth' mode.
For all new callbacks we'll create a specific FooHandler that will contain all
related code - Ajp13 will just handle the protocol-related functions and dispatching.
Revision Changes Path
1.9 +46 -30
jakarta-tomcat-connectors/jk/java/org/apache/ajp/tomcat33/Ajp14Interceptor.java
Index: Ajp14Interceptor.java
===================================================================
RCS file:
/home/cvs/jakarta-tomcat-connectors/jk/java/org/apache/ajp/tomcat33/Ajp14Interceptor.java,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- Ajp14Interceptor.java 2001/11/21 20:49:55 1.8
+++ Ajp14Interceptor.java 2001/11/26 16:59:54 1.9
@@ -64,8 +64,8 @@
import java.util.*;
import org.apache.ajp.*;
+import org.apache.tomcat.modules.server.PoolTcpConnector;
-import org.apache.tomcat.modules.server.*;
import org.apache.tomcat.core.*;
import org.apache.tomcat.util.net.*;
@@ -93,6 +93,8 @@
{
int ajp14_note=-1;
String password;
+ RequestHandler reqHandler=new RequestHandler();
+ NegociationHandler negHandler=new NegociationHandler();
public Ajp14Interceptor()
{
@@ -119,6 +121,13 @@
this.password=s;
}
+ /**
+ * Set the original entropy seed
+ */
+ public void setSeed(String pseed)
+ {
+ negHandler.setSeed( pseed );
+ }
// -------------------- PoolTcpConnector --------------------
@@ -164,17 +173,24 @@
req.recycle();
res.recycle();
// make the note available to other modules
- req.setNote( ajp14_note, req.ajp14);
+ req.setNote( ajp14_note, req.ajp13);
return req;
}
// either thData==null or broken ( req==null)
- Ajp14 ajp14=new Ajp14();
- ajp14.setContainerSignature( ContextManager.TOMCAT_NAME +
- " v" + ContextManager.TOMCAT_VERSION);
- AjpRequest ajpreq=new AjpRequest();
- ajp14.setPassword( password );
- req=new Ajp14Request(ajp14, ajpreq);
- Ajp14Response res=new Ajp14Response(ajp14);
+ Ajp13 ajp13=new Ajp13(reqHandler);
+ negHandler.init( ajp13 );
+
+ negHandler.setContainerSignature( ContextManager.TOMCAT_NAME +
+ " v" + ContextManager.TOMCAT_VERSION);
+ if( password!= null ) {
+ negHandler.setPassword( password );
+ ajp13.setBackward(false);
+ }
+
+ BaseRequest ajpreq=new BaseRequest();
+
+ req=new Ajp14Request(ajp13, ajpreq);
+ Ajp14Response res=new Ajp14Response(ajp13);
cm.initRequest(req, res);
return req;
}
@@ -194,19 +210,19 @@
Ajp14Request req=initRequest( thData );
Ajp14Response res= (Ajp14Response)req.getResponse();
- Ajp14 ajp14=req.ajp14;
- AjpRequest ajpReq=req.ajpReq;
+ Ajp13 ajp13=req.ajp13;
+ BaseRequest ajpReq=req.ajpReq;
- ajp14.setSocket(socket);
+ ajp13.setSocket(socket);
// first request should be the loginit.
- int status=ajp14.receiveNextRequest( ajpReq );
+ int status=ajp13.receiveNextRequest( ajpReq );
if( status != 304 ) { // XXX use better codes
log( "Failure in logInit ");
return;
}
- status=ajp14.receiveNextRequest( ajpReq );
+ status=ajp13.receiveNextRequest( ajpReq );
if( status != 304 ) { // XXX use better codes
log( "Failure in login ");
return;
@@ -214,7 +230,7 @@
boolean moreRequests = true;
while(moreRequests) {
- status=ajp14.receiveNextRequest( ajpReq );
+ status=ajp13.receiveNextRequest( ajpReq );
if( status==-2) {
// special case - shutdown
@@ -237,7 +253,7 @@
res.recycle();
}
if( debug > 0 ) log("Closing ajp14 connection");
- ajp14.close();
+ ajp13.close();
socket.close();
} catch (Exception e) {
log("Processing connection " + connection, e);
@@ -284,10 +300,10 @@
class Ajp14Request extends Request
{
- Ajp14 ajp14;
- AjpRequest ajpReq;
+ Ajp13 ajp13;
+ BaseRequest ajpReq;
- public Ajp14Request(Ajp14 ajp14, AjpRequest ajpReq)
+ public Ajp14Request(Ajp13 ajp13, BaseRequest ajpReq)
{
headers = ajpReq.headers();
methodMB=ajpReq.method();
@@ -309,12 +325,12 @@
params.setHeaders( headers );
initRequest();
- this.ajp14=ajp14;
+ this.ajp13=ajp13;
this.ajpReq=ajpReq;
}
// -------------------- Wrappers for changed method names, and to use the
buffers
- // XXX Move AjpRequest into util !!! ( it's just a stuct with some MessageBytes
)
+ // XXX Move BaseRequest into util !!! ( it's just a stuct with some
MessageBytes )
public int getServerPort() {
return ajpReq.getServerPort();
@@ -394,7 +410,7 @@
public void recycle() {
super.recycle();
ajpReq.recycle();
- if( ajp14!=null) ajp14.recycle();
+ if( ajp13!=null) ajp13.recycle();
}
public String dumpRequest() {
@@ -411,14 +427,14 @@
if( available <= 0 )
return -1;
available--;
- return ajp14.reqHandler.doRead(ajp14);
+ return ajp13.reqHandler.doRead(ajp13);
}
public int doRead(byte[] b, int off, int len) throws IOException
{
if( available <= 0 )
return -1;
- int rd=ajp14.reqHandler.doRead( ajp14, b,off, len );
+ int rd=ajp13.reqHandler.doRead( ajp13, b,off, len );
available -= rd;
return rd;
}
@@ -427,13 +443,13 @@
class Ajp14Response extends Response
{
- Ajp14 ajp14;
+ Ajp13 ajp13;
boolean finished=false;
- public Ajp14Response(Ajp14 ajp14)
+ public Ajp14Response(Ajp13 ajp13)
{
super();
- this.ajp14=ajp14;
+ this.ajp13=ajp13;
}
public void recycle() {
@@ -451,7 +467,7 @@
return;
}
- ajp14.reqHandler.sendHeaders(ajp14, ajp14.outBuf, getStatus(),
+ ajp13.reqHandler.sendHeaders(ajp13, ajp13.outBuf, getStatus(),
HttpMessages.getMessage(status),
getMimeHeaders());
}
@@ -462,14 +478,14 @@
if(!finished) {
super.finish();
finished = true; // Avoid END_OF_RESPONSE sent 2 times
- ajp14.reqHandler.finish(ajp14, ajp14.outBuf);
+ ajp13.reqHandler.finish(ajp13, ajp13.outBuf);
}
}
// XXX Can be implemented using the buffers, no need to extend
public void doWrite( byte b[], int off, int len) throws IOException
{
- ajp14.reqHandler.doWrite(ajp14, ajp14.outBuf, b, off, len );
+ ajp13.reqHandler.doWrite(ajp13, ajp13.outBuf, b, off, len );
}
}
--
To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>