Author: remm
Date: Mon Nov  7 01:57:55 2005
New Revision: 331249

URL: http://svn.apache.org/viewcvs?rev=331249&view=rev
Log:
- Fix swallowed NPE problem with APR connectors when there's no host header.
  The mapper will simply use the default host name in that case.
- Some small cleanups also, like removing the unused Request.localHost field.

Modified:
    tomcat/connectors/trunk/coyote/src/java/org/apache/coyote/Request.java
    
tomcat/connectors/trunk/http11/src/java/org/apache/coyote/http11/Http11AprProcessor.java
    
tomcat/connectors/trunk/http11/src/java/org/apache/coyote/http11/Http11Processor.java
    tomcat/connectors/trunk/jk/java/org/apache/coyote/ajp/AjpAprProcessor.java
    
tomcat/connectors/trunk/util/java/org/apache/tomcat/util/http/mapper/Mapper.java
    
tomcat/container/tc5.5.x/catalina/src/share/org/apache/catalina/connector/CoyoteAdapter.java

Modified: tomcat/connectors/trunk/coyote/src/java/org/apache/coyote/Request.java
URL: 
http://svn.apache.org/viewcvs/tomcat/connectors/trunk/coyote/src/java/org/apache/coyote/Request.java?rev=331249&r1=331248&r2=331249&view=diff
==============================================================================
--- tomcat/connectors/trunk/coyote/src/java/org/apache/coyote/Request.java 
(original)
+++ tomcat/connectors/trunk/coyote/src/java/org/apache/coyote/Request.java Mon 
Nov  7 01:57:55 2005
@@ -88,8 +88,6 @@
     private int serverPort = -1;
     private MessageBytes serverNameMB = MessageBytes.newInstance();
 
-    private String localHost;
-    
     private int remotePort;
     private int localPort;
 
@@ -244,14 +242,6 @@
     public MessageBytes localAddr() {
         return localAddrMB;
     }
-    
-    public String getLocalHost() {
-        return localHost;
-    }
-
-    public void setLocalHost(String host) {
-        this.localHost = host;
-    }    
     
     public int getRemotePort(){
         return remotePort;

Modified: 
tomcat/connectors/trunk/http11/src/java/org/apache/coyote/http11/Http11AprProcessor.java
URL: 
http://svn.apache.org/viewcvs/tomcat/connectors/trunk/http11/src/java/org/apache/coyote/http11/Http11AprProcessor.java?rev=331249&r1=331248&r2=331249&view=diff
==============================================================================
--- 
tomcat/connectors/trunk/http11/src/java/org/apache/coyote/http11/Http11AprProcessor.java
 (original)
+++ 
tomcat/connectors/trunk/http11/src/java/org/apache/coyote/http11/Http11AprProcessor.java
 Mon Nov  7 01:57:55 2005
@@ -1400,12 +1400,7 @@
             // HTTP/1.0
             // Default is what the socket tells us. Overriden if a host is
             // found/parsed
-            request.setServerPort(endpoint.getPort()/*socket.getLocalPort()*/);
-            InetAddress localAddress = 
endpoint.getAddress()/*socket.getLocalAddress()*/;
-            // Setting the socket-related fields. The adapter doesn't know
-            // about socket.
-            request.setLocalHost(localAddress.getHostName());
-            request.serverName().setString(localAddress.getHostName());
+            request.setServerPort(endpoint.getPort());
             return;
         }
 

Modified: 
tomcat/connectors/trunk/http11/src/java/org/apache/coyote/http11/Http11Processor.java
URL: 
http://svn.apache.org/viewcvs/tomcat/connectors/trunk/http11/src/java/org/apache/coyote/http11/Http11Processor.java?rev=331249&r1=331248&r2=331249&view=diff
==============================================================================
--- 
tomcat/connectors/trunk/http11/src/java/org/apache/coyote/http11/Http11Processor.java
 (original)
+++ 
tomcat/connectors/trunk/http11/src/java/org/apache/coyote/http11/Http11Processor.java
 Mon Nov  7 01:57:55 2005
@@ -1355,7 +1355,6 @@
             InetAddress localAddress = socket.getLocalAddress();
             // Setting the socket-related fields. The adapter doesn't know
             // about socket.
-            request.setLocalHost(localAddress.getHostName());
             request.serverName().setString(localAddress.getHostName());
             return;
         }

Modified: 
tomcat/connectors/trunk/jk/java/org/apache/coyote/ajp/AjpAprProcessor.java
URL: 
http://svn.apache.org/viewcvs/tomcat/connectors/trunk/jk/java/org/apache/coyote/ajp/AjpAprProcessor.java?rev=331249&r1=331248&r2=331249&view=diff
==============================================================================
--- tomcat/connectors/trunk/jk/java/org/apache/coyote/ajp/AjpAprProcessor.java 
(original)
+++ tomcat/connectors/trunk/jk/java/org/apache/coyote/ajp/AjpAprProcessor.java 
Mon Nov  7 01:57:55 2005
@@ -834,18 +834,7 @@
             // HTTP/1.0
             // Default is what the socket tells us. Overriden if a host is
             // found/parsed
-            request.setServerPort(endpoint.getPort()/*socket.getLocalPort()*/);
-            InetAddress localAddress = 
endpoint.getAddress()/*socket.getLocalAddress()*/;
-            // Setting the socket-related fields. The adapter doesn't know
-            // about socket.
-            if(localAddress != null) {
-                request.setLocalHost(localAddress.getHostName());
-                request.serverName().setString(localAddress.getHostName());
-            } else {
-               log.error("host address " + endpoint.getPort() + " '" + 
endpoint.getAddress() + "'");
-               request.setLocalHost("localhost");
-               request.serverName().setString("localhost");
-            }
+            request.setServerPort(endpoint.getPort());
             return;
         }
 

Modified: 
tomcat/connectors/trunk/util/java/org/apache/tomcat/util/http/mapper/Mapper.java
URL: 
http://svn.apache.org/viewcvs/tomcat/connectors/trunk/util/java/org/apache/tomcat/util/http/mapper/Mapper.java?rev=331249&r1=331248&r2=331249&view=diff
==============================================================================
--- 
tomcat/connectors/trunk/util/java/org/apache/tomcat/util/http/mapper/Mapper.java
 (original)
+++ 
tomcat/connectors/trunk/util/java/org/apache/tomcat/util/http/mapper/Mapper.java
 Mon Nov  7 01:57:55 2005
@@ -507,6 +507,9 @@
                     MappingData mappingData)
         throws Exception {
 
+        if (host.isNull()) {
+            host.getCharChunk().append(defaultHostName);
+        }
         host.toChars();
         uri.toChars();
         internalMap(host.getCharChunk(), uri.getCharChunk(), mappingData);

Modified: 
tomcat/container/tc5.5.x/catalina/src/share/org/apache/catalina/connector/CoyoteAdapter.java
URL: 
http://svn.apache.org/viewcvs/tomcat/container/tc5.5.x/catalina/src/share/org/apache/catalina/connector/CoyoteAdapter.java?rev=331249&r1=331248&r2=331249&view=diff
==============================================================================
--- 
tomcat/container/tc5.5.x/catalina/src/share/org/apache/catalina/connector/CoyoteAdapter.java
 (original)
+++ 
tomcat/container/tc5.5.x/catalina/src/share/org/apache/catalina/connector/CoyoteAdapter.java
 Mon Nov  7 01:57:55 2005
@@ -260,9 +260,9 @@
 
         // Request mapping.
         MessageBytes serverName;
-        if(connector.getUseIPVHosts()) {
+        if (connector.getUseIPVHosts()) {
             serverName = req.localName();
-            if(serverName.isNull()) {
+            if (serverName.isNull()) {
                 // well, they did ask for it
                 res.action(ActionCode.ACTION_REQ_LOCAL_NAME_ATTRIBUTE, null);
             }



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

Reply via email to