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]>

Reply via email to