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