nacho       00/11/10 13:22:52

  Modified:    src/share/org/apache/tomcat/context ErrorHandler.java
               src/share/org/apache/tomcat/core Request.java
               src/share/org/apache/tomcat/modules/server
                        Http10Interceptor.java
  Log:
  Porting patches made to Tomcat 3.2 into the main branch
  
  Revision  Changes    Path
  1.5       +4 -3      
jakarta-tomcat/src/share/org/apache/tomcat/context/ErrorHandler.java
  
  Index: ErrorHandler.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-tomcat/src/share/org/apache/tomcat/context/ErrorHandler.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- ErrorHandler.java 2000/11/06 15:25:00     1.4
  +++ ErrorHandler.java 2000/11/10 21:22:51     1.5
  @@ -68,6 +68,7 @@
   import java.util.*;
   import java.security.*;
   
  +
   import org.apache.tomcat.util.log.*;
   
   // don't extend - replace !
  @@ -575,14 +576,14 @@
        String scheme = req.scheme().toString();
        int port = req.getServerPort ();
        String urlPath = req.requestURI().toString();
  -     
  +
        url.append (scheme);            // http, https
        url.append ("://");
  -     url.append (req.getServerName ());
  +     url.append (req.getServerName());
        if ((scheme.equals ("http") && port != 80)
                || (scheme.equals ("https") && port != 443)) {
            url.append (':');
  -         url.append (req.getServerPort ());
  +         url.append (port);
        }
        url.append(urlPath);
        return url.toString();
  
  
  
  1.72      +2 -24     jakarta-tomcat/src/share/org/apache/tomcat/core/Request.java
  
  Index: Request.java
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat/src/share/org/apache/tomcat/core/Request.java,v
  retrieving revision 1.71
  retrieving revision 1.72
  diff -u -r1.71 -r1.72
  --- Request.java      2000/11/06 15:16:31     1.71
  +++ Request.java      2000/11/10 21:22:51     1.72
  @@ -299,9 +299,7 @@
        *
        */
       public String getServerName() {
  -     if(serverName==null) 
  -         serverName=findServerName();
  -     return serverName;
  +        return serverName;
       }
   
       /** Virtual host */
  @@ -788,26 +786,6 @@
   
       // -------------------- Computed fields --------------------
       
  -    protected String findServerName() {
  -     String hostHeader = this.getHeader("host");
  -     if (hostHeader != null) {
  -         int i = hostHeader.indexOf(':');
  -         if (i > -1) {
  -             hostHeader = hostHeader.substring(0,i);
  -         }
  -         serverName=hostHeader;
  -         return serverName;
  -     }
  -     if( localHost != null ) {
  -         serverName = localHost;
  -         return serverName;
  -     }
  -     // default to localhost - and warn
  -     //      log("No server name, defaulting to localhost");
  -     localHost=getLocalHost();
  -        serverName=localHost;
  -     return serverName;
  -    }
   
       // -------------------- For adapters --------------------
       
  @@ -885,7 +863,7 @@
           jvmRoute = null;
           headers.clear(); // XXX use recycle pattern
           serverName=null;
  -        serverPort=8080;
  +        serverPort=-1;
           sessionIdSource = null;
        sessionId=null;
        
  
  
  
  1.6       +39 -7     
jakarta-tomcat/src/share/org/apache/tomcat/modules/server/Http10Interceptor.java
  
  Index: Http10Interceptor.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-tomcat/src/share/org/apache/tomcat/modules/server/Http10Interceptor.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- Http10Interceptor.java    2000/11/02 21:44:47     1.5
  +++ Http10Interceptor.java    2000/11/10 21:22:52     1.6
  @@ -230,27 +230,59 @@
   
        // XXX detect for real whether or not we have more requests
        // coming
  -     moreRequests = false;   
  +     moreRequests = false;
       }
   
       // -------------------- override special methods
  -    
  -    public int getServerPort() {
  -        return socket.getLocalPort();
  -    }
  +
   
       public String getRemoteAddr() {
           return socket.getInetAddress().getHostAddress();
       }
  -    
  +
       public String getRemoteHost() {
        return socket.getInetAddress().getHostName();
  -    }    
  +    }
   
       public String getLocalHost() {
        InetAddress localAddress = socket.getLocalAddress();
        localHost = localAddress.getHostName();
        return localHost;
  +    }
  +
  +    public String getServerName(){
  +        if(serverName!=null) return serverName;
  +        parseHostHeader();
  +        return serverName;
  +    }
  +
  +    public int getServerPort(){
  +        if(serverPort!=-1) return serverPort;
  +        parseHostHeader();
  +        return serverPort;
  +    }
  +
  +    protected void parseHostHeader() {
  +     String hostHeader = this.getHeader("host");
  +        serverPort = socket.getLocalPort();
  +     if (hostHeader != null) {
  +         int i = hostHeader.indexOf(':');
  +         if (i > -1) {
  +             serverName = hostHeader.substring(0,i);
  +                hostHeader = hostHeader.substring(i+1);
  +                try{
  +                    serverPort=Integer.parseInt(hostHeader);
  +                }catch(NumberFormatException  nfe){
  +                }
  +         }
  +            return;
  +     }
  +     if( localHost != null ) {
  +         serverName = localHost;
  +     }
  +     // default to localhost - and warn
  +     //      log("No server name, defaulting to localhost");
  +        serverName=getLocalHost();
       }
   }
   
  
  
  

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

Reply via email to