cvs commit: jakarta-tomcat-connectors/coyote/src/java/org/apache/coyote/tomcat4 CoyoteProcessor.java CoyoteRequest.java
remm02/04/03 07:57:11 Modified:coyote/src/java/org/apache/coyote/tomcat4 CoyoteProcessor.java CoyoteRequest.java Log: - Implement getRemoteHost and getRemoteAddr (unfortunate omission caused by the fact that I always test with a local client). - Uses Bill's idea of only doing the lookup once per connection. Revision ChangesPath 1.19 +7 -5 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.18 retrieving revision 1.19 diff -u -r1.18 -r1.19 --- CoyoteProcessor.java 31 Mar 2002 23:37:37 - 1.18 +++ CoyoteProcessor.java 3 Apr 2002 15:57:11 - 1.19 @@ -1,6 +1,6 @@ -/* * $Header: /home/cvs/jakarta-tomcat-connectors/coyote/src/java/org/apache/coyote/tomcat4/CoyoteProcessor.java,v 1.18 2002/03/31 23:37:37 remm Exp $ - * $Revision: 1.18 $ - * $Date: 2002/03/31 23:37:37 $ +/* * $Header: /home/cvs/jakarta-tomcat-connectors/coyote/src/java/org/apache/coyote/tomcat4/CoyoteProcessor.java,v 1.19 2002/04/03 15:57:11 remm Exp $ + * $Revision: 1.19 $ + * $Date: 2002/04/03 15:57:11 $ * * * @@ -120,7 +120,7 @@ * * @author Craig R. McClanahan * @author Remy Maucherat - * @version $Revision: 1.18 $ $Date: 2002/03/31 23:37:37 $ + * @version $Revision: 1.19 $ $Date: 2002/04/03 15:57:11 $ */ final class CoyoteProcessor @@ -387,7 +387,6 @@ protected void postParseRequest(Request req, Response res) throws IOException { -request.setSocket(socket); request.setSecure(connector.getSecure()); req.scheme().setString(connector.getScheme()); @@ -805,6 +804,9 @@ * @param socket The socket on which we are connected to the client */ private void process(Socket socket) { + +// Set socket +request.setSocket(socket); InputStream input = null; OutputStream output = null; 1.15 +33 -8 jakarta-tomcat-connectors/coyote/src/java/org/apache/coyote/tomcat4/CoyoteRequest.java Index: CoyoteRequest.java === RCS file: /home/cvs/jakarta-tomcat-connectors/coyote/src/java/org/apache/coyote/tomcat4/CoyoteRequest.java,v retrieving revision 1.14 retrieving revision 1.15 diff -u -r1.14 -r1.15 --- CoyoteRequest.java28 Mar 2002 03:41:53 - 1.14 +++ CoyoteRequest.java3 Apr 2002 15:57:11 - 1.15 @@ -1,7 +1,7 @@ /* - * $Header: /home/cvs/jakarta-tomcat-connectors/coyote/src/java/org/apache/coyote/tomcat4/CoyoteRequest.java,v 1.14 2002/03/28 03:41:53 remm Exp $ - * $Revision: 1.14 $ - * $Date: 2002/03/28 03:41:53 $ + * $Header: /home/cvs/jakarta-tomcat-connectors/coyote/src/java/org/apache/coyote/tomcat4/CoyoteRequest.java,v 1.15 2002/04/03 15:57:11 remm Exp $ + * $Revision: 1.15 $ + * $Date: 2002/04/03 15:57:11 $ * * * @@ -70,6 +70,7 @@ import java.io.IOException; import java.io.BufferedReader; import java.io.UnsupportedEncodingException; +import java.net.InetAddress; import java.net.Socket; import java.security.AccessController; import java.security.Principal; @@ -122,7 +123,7 @@ * * @author Remy Maucherat * @author Craig R. McClanahan - * @version $Revision: 1.14 $ $Date: 2002/03/28 03:41:53 $ + * @version $Revision: 1.15 $ $Date: 2002/04/03 15:57:11 $ */ public class CoyoteRequest @@ -355,6 +356,18 @@ private StringParser parser = new StringParser(); +/** + * Remote address. + */ +protected String remoteAddr = null; + + +/** + * Remote host. + */ +protected String remoteHost = null; + + // - Public Methods @@ -364,8 +377,6 @@ */ public void recycle() { -socket = null; - context = null; wrapper = null; @@ -543,6 +554,8 @@ */ public void setSocket(Socket socket) { this.socket = socket; +remoteHost = null; +remoteAddr = null; } @@ -1002,7 +1015,11 @@ * Return the remote IP address making this Request. */ public String getRemoteAddr() { -return coyoteRequest.remoteAddr().toString(); +if (remoteAddr == null) { +InetAddress inet = socket.getInetAddress(); +remoteAddr = inet.getHostAddress(); +} +
cvs commit: jakarta-tomcat-connectors/coyote/src/java/org/apache/coyote/tomcat4 CoyoteProcessor.java CoyoteRequest.java
remm02/03/19 12:34:41 Modified:coyote/src/java/org/apache/coyote/tomcat4 CoyoteProcessor.java CoyoteRequest.java Log: - Switch over to the optimized j-t-c/util code for cookie parsing. Revision ChangesPath 1.17 +34 -28 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.16 retrieving revision 1.17 diff -u -r1.16 -r1.17 --- CoyoteProcessor.java 16 Mar 2002 05:31:12 - 1.16 +++ CoyoteProcessor.java 19 Mar 2002 20:34:41 - 1.17 @@ -1,6 +1,6 @@ -/* * $Header: /home/cvs/jakarta-tomcat-connectors/coyote/src/java/org/apache/coyote/tomcat4/CoyoteProcessor.java,v 1.16 2002/03/16 05:31:12 remm Exp $ - * $Revision: 1.16 $ - * $Date: 2002/03/16 05:31:12 $ +/* * $Header: /home/cvs/jakarta-tomcat-connectors/coyote/src/java/org/apache/coyote/tomcat4/CoyoteProcessor.java,v 1.17 2002/03/19 20:34:41 remm Exp $ + * $Revision: 1.17 $ + * $Date: 2002/03/19 20:34:41 $ * * * @@ -85,6 +85,8 @@ import org.apache.tomcat.util.buf.ByteChunk; import org.apache.tomcat.util.buf.MessageBytes; +import org.apache.tomcat.util.http.Cookies; +import org.apache.tomcat.util.http.ServerCookie; import org.apache.coyote.ActionCode; import org.apache.coyote.ActionHook; @@ -117,7 +119,7 @@ * * @author Craig R. McClanahan * @author Remy Maucherat - * @version $Revision: 1.16 $ $Date: 2002/03/16 05:31:12 $ + * @version $Revision: 1.17 $ $Date: 2002/03/19 20:34:41 $ */ final class CoyoteProcessor @@ -415,7 +417,7 @@ } parseHost(); -parseCookies(); +parseCookies(req); } @@ -518,33 +520,37 @@ * but a conversion to Catalina own cookies would then be needed, which * would take away most if not all of the performance benefit. */ -protected void parseCookies() { +protected void parseCookies(Request req) { -Enumeration values = request.getHeaders(cookie); -while (values.hasMoreElements()) { -String value = values.nextElement().toString(); -Cookie cookies[] = RequestUtil.parseCookieHeader(value); -for (int i = 0; i cookies.length; i++) { -if (cookies[i].getName().equals -(Globals.SESSION_COOKIE_NAME)) { -// Override anything requested in the URL -if (!request.isRequestedSessionIdFromCookie()) { -// Accept only the first session id cookie -request.setRequestedSessionId(cookies[i].getValue()); -request.setRequestedSessionCookie(true); -request.setRequestedSessionURL(false); -if (debug = 1) -log( Requested cookie session id is + -((HttpServletRequest) request.getRequest()) -.getRequestedSessionId()); -} +Cookies serverCookies = req.getCookies(); +int count = serverCookies.getCookieCount(); +if (count = 0) +return; + +Cookie[] cookies = new Cookie[count]; + +for (int i = 0; i count; i++) { +ServerCookie scookie = serverCookies.getCookie(i); +if (scookie.getName().equals(Globals.SESSION_COOKIE_NAME)) { +// Override anything requested in the URL +if (!request.isRequestedSessionIdFromCookie()) { +// Accept only the first session id cookie +request.setRequestedSessionId +(scookie.getValue().toString()); +request.setRequestedSessionCookie(true); +request.setRequestedSessionURL(false); +if (debug = 1) +log( Requested cookie session id is + +((HttpServletRequest) request.getRequest()) +.getRequestedSessionId()); } -if (debug = 1) -log( Adding cookie + cookies[i].getName() + = + -cookies[i].getValue()); -request.addCookie(cookies[i]); } +Cookie cookie = new Cookie(scookie.getName().toString(), + scookie.getValue().toString()); +cookies[i] = cookie; } + +request.setCookies(cookies); }
cvs commit: jakarta-tomcat-connectors/coyote/src/java/org/apache/coyote/tomcat4 CoyoteProcessor.java CoyoteRequest.java
remm02/03/08 10:50:41 Modified:coyote/src/java/org/apache/coyote Request.java coyote/src/java/org/apache/coyote/tomcat4 CoyoteProcessor.java CoyoteRequest.java Log: - Add parameters object in the request. - Move the Catalina-specific 'secure' flag to the Catalina adapter. Revision ChangesPath 1.6 +32 -16 jakarta-tomcat-connectors/coyote/src/java/org/apache/coyote/Request.java Index: Request.java === RCS file: /home/cvs/jakarta-tomcat-connectors/coyote/src/java/org/apache/coyote/Request.java,v retrieving revision 1.5 retrieving revision 1.6 diff -u -r1.5 -r1.6 --- Request.java 8 Mar 2002 05:15:51 - 1.5 +++ Request.java 8 Mar 2002 18:50:41 - 1.6 @@ -114,7 +114,13 @@ public Request() { + recycle(); + +parameters.setQuery(queryMB); +parameters.setURLDecoder(urlDecoder); +parameters.setHeaders(headers); + } @@ -127,7 +133,6 @@ protected String localHost; protected MessageBytes schemeMB = new MessageBytes(); -protected boolean secure = false; protected MessageBytes methodMB = new MessageBytes(); protected MessageBytes unparsedURIMB = new MessageBytes(); @@ -158,7 +163,7 @@ /** * URL decoder. */ -UDecoder urlDecoder = new UDecoder(); +protected UDecoder urlDecoder = new UDecoder(); /** @@ -170,16 +175,18 @@ protected MessageBytes contentTypeMB = null; protected String charEncoding = null; protected Cookies cookies = new Cookies(headers); +protected Parameters parameters = new Parameters(); // - Properties /** - * Get the host id ( or jvmRoute ) - * @return the jvm route + * Get the instance id (or JVM route). + * + * @return the instance id */ -public MessageBytes getInstanceId() { +public MessageBytes instanceId() { return instanceId; } @@ -260,22 +267,21 @@ this.localHost = host; } -public boolean isSecure() { -return secure; -} - -public void setSecure(boolean secure) { -this.secure = secure; -} // encoding/type +/** + * Get the character encoding used for this request. + */ public String getCharacterEncoding() { -if(charEncoding != null) return charEncoding; + +if (charEncoding != null) +return charEncoding; charEncoding = ContentType.getCharsetFromContentType(getContentType()); - return charEncoding; +return charEncoding; + } @@ -339,6 +345,14 @@ } +// Parameters + + +public Parameters getParameters() { + return parameters; +} + + // Input Buffer @@ -389,14 +403,16 @@ public void recycle() { + contentLength = -1; contentTypeMB = null; charEncoding = null; headers.recycle(); serverNameMB.recycle(); serverPort=-1; - + cookies.recycle(); +parameters.recycle(); unparsedURIMB.recycle(); uriMB.recycle(); @@ -408,13 +424,13 @@ // XXX Do we need such defaults ? schemeMB.setString(http); -secure = false; methodMB.setString(GET); uriMB.setString(/); queryMB.setString(); protoMB.setString(HTTP/1.0); remoteAddrMB.setString(127.0.0.1); remoteHostMB.setString(localhost); + } 1.6 +5 -5 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.5 retrieving revision 1.6 diff -u -r1.5 -r1.6 --- CoyoteProcessor.java 8 Mar 2002 05:16:56 - 1.5 +++ CoyoteProcessor.java 8 Mar 2002 18:50:41 - 1.6 @@ -1,6 +1,6 @@ -/* * $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 $ +/* * $Header: /home/cvs/jakarta-tomcat-connectors/coyote/src/java/org/apache/coyote/tomcat4/CoyoteProcessor.java,v 1.6 2002/03/08 18:50:41 remm Exp $ + * $Revision: 1.6 $ + * $Date: 2002/03/08 18:50:41 $
cvs commit: jakarta-tomcat-connectors/coyote/src/java/org/apache/coyote/tomcat4 CoyoteProcessor.java CoyoteRequest.java
remm02/03/08 12:52:27 Modified:coyote/src/java/org/apache/coyote/tomcat4 CoyoteProcessor.java CoyoteRequest.java Log: - Add parameters handling. Revision ChangesPath 1.8 +6 -5 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.7 retrieving revision 1.8 diff -u -r1.7 -r1.8 --- CoyoteProcessor.java 8 Mar 2002 19:26:01 - 1.7 +++ CoyoteProcessor.java 8 Mar 2002 20:52:27 - 1.8 @@ -1,6 +1,6 @@ -/* * $Header: /home/cvs/jakarta-tomcat-connectors/coyote/src/java/org/apache/coyote/tomcat4/CoyoteProcessor.java,v 1.7 2002/03/08 19:26:01 craigmcc Exp $ - * $Revision: 1.7 $ - * $Date: 2002/03/08 19:26:01 $ +/* * $Header: /home/cvs/jakarta-tomcat-connectors/coyote/src/java/org/apache/coyote/tomcat4/CoyoteProcessor.java,v 1.8 2002/03/08 20:52:27 remm Exp $ + * $Revision: 1.8 $ + * $Date: 2002/03/08 20:52:27 $ * * * @@ -111,7 +111,7 @@ * * @author Craig R. McClanahan * @author Remy Maucherat - * @version $Revision: 1.7 $ $Date: 2002/03/08 19:26:01 $ + * @version $Revision: 1.8 $ $Date: 2002/03/08 20:52:27 $ */ final class CoyoteProcessor @@ -137,6 +137,8 @@ this.proxyPort = connector.getProxyPort(); this.request = (CoyoteRequest) connector.createRequest(); this.response = (CoyoteResponse) connector.createResponse(); +this.request.setResponse(this.response); +this.response.setRequest(this.request); this.serverPort = connector.getPort(); this.threadName = CoyoteProcessor[ + connector.getPort() + ][ + id + ]; @@ -371,7 +373,6 @@ parseHost(); // parseSession(req); -// parseParameters(req); } 1.5 +146 -32 jakarta-tomcat-connectors/coyote/src/java/org/apache/coyote/tomcat4/CoyoteRequest.java Index: CoyoteRequest.java === RCS file: /home/cvs/jakarta-tomcat-connectors/coyote/src/java/org/apache/coyote/tomcat4/CoyoteRequest.java,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- CoyoteRequest.java8 Mar 2002 18:50:41 - 1.4 +++ CoyoteRequest.java8 Mar 2002 20:52:27 - 1.5 @@ -1,7 +1,7 @@ /* - * $Header: /home/cvs/jakarta-tomcat-connectors/coyote/src/java/org/apache/coyote/tomcat4/CoyoteRequest.java,v 1.4 2002/03/08 18:50:41 remm Exp $ - * $Revision: 1.4 $ - * $Date: 2002/03/08 18:50:41 $ + * $Header: /home/cvs/jakarta-tomcat-connectors/coyote/src/java/org/apache/coyote/tomcat4/CoyoteRequest.java,v 1.5 2002/03/08 20:52:27 remm Exp $ + * $Revision: 1.5 $ + * $Date: 2002/03/08 20:52:27 $ * * * @@ -91,6 +91,8 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpSession; +import org.apache.tomcat.util.http.Parameters; + import org.apache.coyote.Request; import org.apache.catalina.Connector; @@ -115,7 +117,7 @@ * * @author Remy Maucherat * @author Craig R. McClanahan - * @version $Revision: 1.4 $ $Date: 2002/03/08 18:50:41 $ + * @version $Revision: 1.5 $ $Date: 2002/03/08 20:52:27 $ */ public class CoyoteRequest @@ -200,21 +202,6 @@ /** - * The parsed parameters for this request. This is populated only if - * parameter information is requested via one of the - * codegetParameter()/code family of method calls. The key is the - * parameter name, while the value is a String array of values for this - * parameter. - * p - * strongIMPLEMENTATION NOTE/strong - Once the parameters for a - * particular request are parsed and stored here, they are not modified. - * Therefore, application level access to the parameters need not be - * synchronized. - */ -protected ParameterMap parameters = null; - - -/** * Authentication type. */ protected String authType = null; @@ -242,6 +229,12 @@ /** + * Using writer flag. + */ +protected boolean usingReader = false; + + +/** * Context path. */ protected String contextPath = ; @@ -284,11 +277,30 @@ /** + * Authorization parsed flag. + */ +protected boolean authorizationParsed = false; + + +/** * Secure flag. */ protected boolean secure = false; +/** + *
cvs commit: jakarta-tomcat-connectors/coyote/src/java/org/apache/coyote/tomcat4 CoyoteProcessor.java CoyoteRequest.java CoyoteResponse.java
remm02/03/08 15:50:31 Modified:coyote/src/java/org/apache/coyote/tomcat4 CoyoteProcessor.java CoyoteRequest.java CoyoteResponse.java Log: - Implement cookies and sessions. - One difference with Catalina is that the session cookie is added when the session is created. I couldn't find any drawback to this, and this is easier to implement. If there is a problem with tha, let me know. Revision ChangesPath 1.9 +43 -5 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.8 retrieving revision 1.9 diff -u -r1.8 -r1.9 --- CoyoteProcessor.java 8 Mar 2002 20:52:27 - 1.8 +++ CoyoteProcessor.java 8 Mar 2002 23:50:31 - 1.9 @@ -1,6 +1,6 @@ -/* * $Header: /home/cvs/jakarta-tomcat-connectors/coyote/src/java/org/apache/coyote/tomcat4/CoyoteProcessor.java,v 1.8 2002/03/08 20:52:27 remm Exp $ - * $Revision: 1.8 $ - * $Date: 2002/03/08 20:52:27 $ +/* * $Header: /home/cvs/jakarta-tomcat-connectors/coyote/src/java/org/apache/coyote/tomcat4/CoyoteProcessor.java,v 1.9 2002/03/08 23:50:31 remm Exp $ + * $Revision: 1.9 $ + * $Date: 2002/03/08 23:50:31 $ * * * @@ -73,6 +73,7 @@ import java.net.InetAddress; import java.net.Socket; import java.util.ArrayList; +import java.util.Enumeration; import java.util.Iterator; import java.util.Locale; import java.util.StringTokenizer; @@ -111,7 +112,7 @@ * * @author Craig R. McClanahan * @author Remy Maucherat - * @version $Revision: 1.8 $ $Date: 2002/03/08 20:52:27 $ + * @version $Revision: 1.9 $ $Date: 2002/03/08 23:50:31 $ */ final class CoyoteProcessor @@ -372,7 +373,7 @@ req.scheme().setString(connector.getScheme()); parseHost(); -// parseSession(req); +parseCookies(); } @@ -415,6 +416,43 @@ } request.setServerPort(port); } +} +} + +} + + +/** + * Parse cookies. + * Note: Using Coyote native cookie parser to parse cookies would be faster + * but a conversion to Catalina own cookies would then be needed, which + * would take away most if not all of theperformance benefit. + */ +protected void parseCookies() { + +Enumeration values = request.getHeaders(cookie); +while (values.hasMoreElements()) { +String value = values.nextElement().toString(); +Cookie cookies[] = RequestUtil.parseCookieHeader(value); +for (int i = 0; i cookies.length; i++) { +if (cookies[i].getName().equals +(Globals.SESSION_COOKIE_NAME)) { +// Override anything requested in the URL +if (!request.isRequestedSessionIdFromCookie()) { +// Accept only the first session id cookie +request.setRequestedSessionId(cookies[i].getValue()); +request.setRequestedSessionCookie(true); +request.setRequestedSessionURL(false); +if (debug = 1) +log( Requested cookie session id is + +((HttpServletRequest) request.getRequest()) +.getRequestedSessionId()); +} +} +if (debug = 1) +log( Adding cookie + cookies[i].getName() + = + +cookies[i].getValue()); +request.addCookie(cookies[i]); } } 1.6 +182 -14 jakarta-tomcat-connectors/coyote/src/java/org/apache/coyote/tomcat4/CoyoteRequest.java Index: CoyoteRequest.java === RCS file: /home/cvs/jakarta-tomcat-connectors/coyote/src/java/org/apache/coyote/tomcat4/CoyoteRequest.java,v retrieving revision 1.5 retrieving revision 1.6 diff -u -r1.5 -r1.6 --- CoyoteRequest.java8 Mar 2002 20:52:27 - 1.5 +++ CoyoteRequest.java8 Mar 2002 23:50:31 - 1.6 @@ -1,7 +1,7 @@ /* - * $Header: /home/cvs/jakarta-tomcat-connectors/coyote/src/java/org/apache/coyote/tomcat4/CoyoteRequest.java,v 1.5 2002/03/08 20:52:27 remm Exp $ - * $Revision: 1.5 $ - * $Date: 2002/03/08 20:52:27 $ + * $Header: /home/cvs/jakarta-tomcat-connectors/coyote/src/java/org/apache/coyote/tomcat4/CoyoteRequest.java,v 1.6
cvs commit: jakarta-tomcat-connectors/coyote/src/java/org/apache/coyote/tomcat4 CoyoteProcessor.java CoyoteRequest.java
remm02/03/08 19:35:23 Modified:coyote/src/java/org/apache/coyote/tomcat4 CoyoteProcessor.java CoyoteRequest.java Log: - Port the locales parsing (which is as unoptimized as before, but is now run only when requested). - Miscanellous fixes. - Only one tester failure when using Coyote (there are a few others which appear to be tester bugs), on the WrappedForward05 (which is a servlet - JSP - servlet with a filter doing req/resp wrapping). I have no idea at this point why it fails, but it looks like the bytes output by the last servlet would be swallowed silently somewhere. - There are some connection handling problems with IE/Webfolders doing some PROPFINDs requests; otherwise, WebDAV and uploading appear to be working fine. Revision ChangesPath 1.10 +51 -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.9 retrieving revision 1.10 diff -u -r1.9 -r1.10 --- CoyoteProcessor.java 8 Mar 2002 23:50:31 - 1.9 +++ CoyoteProcessor.java 9 Mar 2002 03:35:23 - 1.10 @@ -1,6 +1,6 @@ -/* * $Header: /home/cvs/jakarta-tomcat-connectors/coyote/src/java/org/apache/coyote/tomcat4/CoyoteProcessor.java,v 1.9 2002/03/08 23:50:31 remm Exp $ - * $Revision: 1.9 $ - * $Date: 2002/03/08 23:50:31 $ +/* * $Header: /home/cvs/jakarta-tomcat-connectors/coyote/src/java/org/apache/coyote/tomcat4/CoyoteProcessor.java,v 1.10 2002/03/09 03:35:23 remm Exp $ + * $Revision: 1.10 $ + * $Date: 2002/03/09 03:35:23 $ * * * @@ -112,7 +112,7 @@ * * @author Craig R. McClanahan * @author Remy Maucherat - * @version $Revision: 1.9 $ $Date: 2002/03/08 23:50:31 $ + * @version $Revision: 1.10 $ $Date: 2002/03/09 03:35:23 $ */ final class CoyoteProcessor @@ -305,6 +305,10 @@ // Calling the container connector.getContainer().invoke(request, response); response.finishResponse(); +} catch (IOException e) { +; +} catch (Throwable t) { +log(sm.getString(coyoteProcessor.service), t); } finally { // Recycle the wrapper request and response request.recycle(); @@ -372,7 +376,16 @@ request.setSecure(connector.getSecure()); req.scheme().setString(connector.getScheme()); +request.setAuthorization +(req.getHeader(Constants.AUTHORIZATION_HEADER)); + +if (proxyPort != 0) +request.setServerPort(proxyPort); +else +request.setServerPort(serverPort); + parseHost(); +parseSessionId(); parseCookies(); } @@ -423,6 +436,38 @@ /** + * Parse session id in URL. + */ +protected void parseSessionId() { + +String uri = request.getRequestURI(); + +int semicolon = uri.indexOf(match); +if (semicolon = 0) { +String rest = uri.substring(semicolon + match.length()); +int semicolon2 = rest.indexOf(';'); +if (semicolon2 = 0) { +request.setRequestedSessionId(rest.substring(0, semicolon2)); +rest = rest.substring(semicolon2); +} else { +request.setRequestedSessionId(rest); +rest = ; +} +request.setRequestedSessionURL(true); +uri = uri.substring(0, semicolon) + rest; +if (debug = 1) +log( Requested URL session id is + +((HttpServletRequest) request.getRequest()) +.getRequestedSessionId()); +} else { +request.setRequestedSessionId(null); +request.setRequestedSessionURL(false); +} + +} + + +/** * Parse cookies. * Note: Using Coyote native cookie parser to parse cookies would be faster * but a conversion to Catalina own cookies would then be needed, which @@ -507,6 +552,8 @@ input = socket.getInputStream(); output = socket.getOutputStream(); processor.process(input, output); +} catch (IOException e) { +; } catch (Throwable t) { log(sm.getString(coyoteProcessor.process), t); } 1.7 +148 -26 jakarta-tomcat-connectors/coyote/src/java/org/apache/coyote/tomcat4/CoyoteRequest.java Index: CoyoteRequest.java