cvs commit: jakarta-tomcat-connectors/coyote/src/java/org/apache/coyote/tomcat4 CoyoteProcessor.java CoyoteRequest.java

2002-04-03 Thread remm

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

2002-03-19 Thread remm

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

2002-03-08 Thread remm

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

2002-03-08 Thread remm

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

2002-03-08 Thread remm

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

2002-03-08 Thread remm

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