billbarker    02/03/15 20:47:30

  Modified:    coyote/src/java/org/apache/coyote/tomcat3
                        CoyoteProcessor.java CoyoteRequest.java
  Log:
  Fix problem with getRemoteAddr() and getRemoteHost().
  
  Since I'm the only one with a socket, it's not possible to delegate this to the 
coyoteRequest.  This is basically a back-port from the Http10Request.
  
  Revision  Changes    Path
  1.4       +1 -9      
jakarta-tomcat-connectors/coyote/src/java/org/apache/coyote/tomcat3/CoyoteProcessor.java
  
  Index: CoyoteProcessor.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-tomcat-connectors/coyote/src/java/org/apache/coyote/tomcat3/CoyoteProcessor.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- CoyoteProcessor.java      12 Mar 2002 04:31:51 -0000      1.3
  +++ CoyoteProcessor.java      16 Mar 2002 04:47:30 -0000      1.4
  @@ -80,8 +80,6 @@
       private CoyoteResponse resA;
       private ContextManager cm;
       private boolean secure=false;
  -    private int serverPort=-1;
  -    private String localHost = null;
       private SSLImplementation sslImplementation=null;
       private SSLSupport sslSupport=null;
   
  @@ -96,8 +94,6 @@
        secure = false;
        sslImplementation=null;
        sslSupport=null;
  -     serverPort=-1;
  -     localHost=null;
       }
   
       public void setSSLImplementation(SSLImplementation ssl) {
  @@ -107,9 +103,7 @@
        secure = isSecure;
       }
       public void setSocket(Socket socket) {
  -     serverPort = socket.getLocalPort();
  -     InetAddress localAddress = socket.getLocalAddress();
  -     localHost = localAddress.getHostName();
  +     reqA.setSocket(socket);
        if( secure ) {
            // Load up the SSLSupport class
            if(sslImplementation != null)
  @@ -120,8 +114,6 @@
                        org.apache.coyote.Response response) 
            throws Exception{
        reqA.setCoyoteRequest(request);
  -     reqA.setServerPort(serverPort);
  -     request.setLocalHost(localHost);
        resA.setCoyoteResponse(response);
        if( secure ) {
            reqA.scheme().setString( "https" );
  
  
  
  1.5       +23 -4     
jakarta-tomcat-connectors/coyote/src/java/org/apache/coyote/tomcat3/CoyoteRequest.java
  
  Index: CoyoteRequest.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-tomcat-connectors/coyote/src/java/org/apache/coyote/tomcat3/CoyoteRequest.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- CoyoteRequest.java        12 Mar 2002 04:30:55 -0000      1.4
  +++ CoyoteRequest.java        16 Mar 2002 04:47:30 -0000      1.5
  @@ -83,17 +83,23 @@
       int  pos=-1;
       int  end=-1;
       byte [] readBuffer = null;
  -    
  +    Socket socket = null;
  +
       public CoyoteRequest() {
           super();
  +        remoteAddrMB.recycle();
  +        remoteHostMB.recycle();
       }
   
       public void recycle() {
        super.recycle();
        if( coyoteRequest != null) coyoteRequest.recycle();
  +        remoteAddrMB.recycle();
  +        remoteHostMB.recycle();
   
        readChunk.recycle();
        sslSupport=null;
  +     readBuffer=null;
        pos=-1;
        end=-1;
       }
  @@ -120,6 +126,9 @@
        params.setHeaders(headers);
       }
   
  +    public void setSocket(Socket socket) {
  +     this.socket = socket;
  +    }
   
       public int doRead() throws IOException {
        if( available == 0 ) 
  @@ -201,16 +210,26 @@
       // -------------------- override special methods
   
       public MessageBytes remoteAddr() {
  -     return coyoteRequest.remoteAddr();
  +     if( remoteAddrMB.isNull() ) {
  +         remoteAddrMB.setString(socket.getInetAddress().getHostAddress());
  +     }
  +     return remoteAddrMB;
       }
   
       public MessageBytes remoteHost() {
  -     return coyoteRequest.remoteHost();
  +     if( remoteHostMB.isNull() ) {
  +         remoteHostMB.setString( socket.getInetAddress().getHostName() );
  +     }
  +     return remoteHostMB;
       }
   
       public String getLocalHost() {
  -     return coyoteRequest.getLocalHost();
  +     InetAddress localAddress = socket.getLocalAddress();
  +     localHost = localAddress.getHostName();
  +     return localHost;
  +
       }
  +
       public MessageBytes serverName(){
           if(! serverNameMB.isNull()) return serverNameMB;
           parseHostHeader();
  
  
  

--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to