remm 02/03/07 21:16:56
Modified: coyote/src/java/org/apache/coyote/tomcat4
CoyoteProcessor.java
Log:
- Always parse host header (and extract the server name and port from it).
Revision Changes Path
1.5 +71 -4
jakarta-tomcat-connectors/coyote/src/java/org/apache/coyote/tomcat4/CoyoteProcessor.java
Index: CoyoteProcessor.java
===================================================================
RCS file:
/home/cvs/jakarta-tomcat-connectors/coyote/src/java/org/apache/coyote/tomcat4/CoyoteProcessor.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- CoyoteProcessor.java 27 Feb 2002 08:24:08 -0000 1.4
+++ CoyoteProcessor.java 8 Mar 2002 05:16:56 -0000 1.5
@@ -1,6 +1,6 @@
-/* * $Header:
/home/cvs/jakarta-tomcat-connectors/coyote/src/java/org/apache/coyote/tomcat4/CoyoteProcessor.java,v
1.4 2002/02/27 08:24:08 remm Exp $
- * $Revision: 1.4 $
- * $Date: 2002/02/27 08:24:08 $
+/* * $Header:
/home/cvs/jakarta-tomcat-connectors/coyote/src/java/org/apache/coyote/tomcat4/CoyoteProcessor.java,v
1.5 2002/03/08 05:16:56 remm Exp $
+ * $Revision: 1.5 $
+ * $Date: 2002/03/08 05:16:56 $
*
* ====================================================================
*
@@ -111,7 +111,7 @@
*
* @author Craig R. McClanahan
* @author Remy Maucherat
- * @version $Revision: 1.4 $ $Date: 2002/02/27 08:24:08 $
+ * @version $Revision: 1.5 $ $Date: 2002/03/08 05:16:56 $
*/
final class CoyoteProcessor
@@ -296,8 +296,12 @@
response.setCoyoteResponse(res);
try {
+ // Parse and set Catalina and configuration specific
+ // request parameters
+ postParseRequest(req);
// Calling the container
connector.getContainer().invoke(request, response);
+ response.finishResponse();
} finally {
// Recycle the wrapper request and response
request.recycle();
@@ -349,6 +353,69 @@
if ((debug >= 1) && (socket != null))
log(" An incoming request is being assigned");
+
+ }
+
+
+ // ------------------------------------------------------ Protected Methods
+
+
+ /**
+ * Parse additional request parameters.
+ */
+ protected void postParseRequest(Request req)
+ throws IOException {
+
+ req.setSecure(connector.getSecure());
+ req.scheme().setString(connector.getScheme());
+
+ parseHost();
+ // parseSession(req);
+ // parseParameters(req);
+
+ }
+
+
+ /**
+ * Parse host.
+ */
+ protected void parseHost()
+ throws IOException {
+
+ String value = request.getHeader("host");
+ if (value != null) {
+ int n = value.indexOf(':');
+ if (n < 0) {
+ if (connector.getScheme().equals("http")) {
+ request.setServerPort(80);
+ } else if (connector.getScheme().equals("https")) {
+ request.setServerPort(443);
+ }
+ if (proxyName != null)
+ request.setServerName(proxyName);
+ else
+ request.setServerName(value);
+ } else {
+ if (proxyName != null)
+ request.setServerName(proxyName);
+ else
+ request.setServerName(value.substring(0, n).trim());
+ if (proxyPort != 0)
+ request.setServerPort(proxyPort);
+ else {
+ int port = 80;
+ try {
+ port =
+ Integer.parseInt(value.substring(n + 1).trim());
+ } catch (Exception e) {
+ throw new IOException
+ (sm.getString
+ ("coyoteProcessor.parseHeaders.portNumber"));
+ }
+ request.setServerPort(port);
+ }
+ }
+ }
}
--
To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>