remm        00/12/16 11:01:25

  Modified:    catalina/src/share/org/apache/catalina/connector/http
                        Constants.java HttpConnector.java
                        HttpProcessor.java
  Log:
  - Adds connection timeouts.
  - By default, the timeout is 60s.
  - Hopefully there's no real performance impact, as the timeout is handled
    by the low level TCP/IP stack (but I didn't do any evaluation of this either).
  - The timeout is configurable by the admin by using the connectionTimeout
    attribute of the connector in server.xml.
  
  Revision  Changes    Path
  1.3       +4 -3      
jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/connector/http/Constants.java
  
  Index: Constants.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/connector/http/Constants.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- Constants.java    2000/08/24 23:56:58     1.2
  +++ Constants.java    2000/12/16 19:01:23     1.3
  @@ -1,7 +1,7 @@
   /*
  - * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/connector/http/Constants.java,v
 1.2 2000/08/24 23:56:58 craigmcc Exp $
  - * $Revision: 1.2 $
  - * $Date: 2000/08/24 23:56:58 $
  + * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/connector/http/Constants.java,v
 1.3 2000/12/16 19:01:23 remm Exp $
  + * $Revision: 1.3 $
  + * $Date: 2000/12/16 19:01:23 $
    *
    * ====================================================================
    *
  @@ -77,5 +77,6 @@
       public static final String Package = "org.apache.catalina.connector.http";
       public static final String ServerInfo =
        Globals.SERVER_INFO + " (HTTP/1.1 Connector)";
  +    public static final int DEFAULT_CONNECTION_TIMEOUT = 60000;
   
   }
  
  
  
  1.5       +34 -4     
jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/connector/http/HttpConnector.java
  
  Index: HttpConnector.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/connector/http/HttpConnector.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- HttpConnector.java        2000/11/09 20:15:50     1.4
  +++ HttpConnector.java        2000/12/16 19:01:23     1.5
  @@ -1,7 +1,7 @@
   /*
  - * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/connector/http/HttpConnector.java,v
 1.4 2000/11/09 20:15:50 remm Exp $
  - * $Revision: 1.4 $
  - * $Date: 2000/11/09 20:15:50 $
  + * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/connector/http/HttpConnector.java,v
 1.5 2000/12/16 19:01:23 remm Exp $
  + * $Revision: 1.5 $
  + * $Date: 2000/12/16 19:01:23 $
    *
    * ====================================================================
    *
  @@ -94,7 +94,7 @@
    *
    * @author Craig R. McClanahan
    * @author Remy Maucherat
  - * @version $Revision: 1.4 $ $Date: 2000/11/09 20:15:50 $
  + * @version $Revision: 1.5 $ $Date: 2000/12/16 19:01:23 $
    */
   
   
  @@ -180,6 +180,13 @@
   
   
       /**
  +     * Timeout value on the incoming connection.
  +     * Note : a value of 0 means no timeout.
  +     */
  +    private int connectionTimeout = Constants.DEFAULT_CONNECTION_TIMEOUT;
  +
  +
  +    /**
        * The port number on which we listen for HTTP requests.
        */
       private int port = 8080;
  @@ -259,6 +266,28 @@
   
   
       /**
  +     * Return the connection timeout for this Connector.
  +     */
  +    public int getConnectionTimeout() {
  +
  +     return (connectionTimeout);
  +
  +    }
  +
  +
  +    /**
  +     * Set the connection timeout for this Connector.
  +     *
  +     * @param count The new connection timeout
  +     */
  +    public void setConnectionTimeout(int connectionTimeout) {
  +
  +     this.connectionTimeout = connectionTimeout;
  +
  +    }
  +
  +
  +    /**
        * Return the accept count for this Connector.
        */
       public int getAcceptCount() {
  @@ -739,6 +768,7 @@
            Socket socket = null;
            try {
                socket = serverSocket.accept();
  +                socket.setSoTimeout(connectionTimeout);
            } catch (IOException e) {
                if (started && !stopped)
                    log("accept: ", e);
  
  
  
  1.17      +7 -5      
jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/connector/http/HttpProcessor.java
  
  Index: HttpProcessor.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/connector/http/HttpProcessor.java,v
  retrieving revision 1.16
  retrieving revision 1.17
  diff -u -r1.16 -r1.17
  --- HttpProcessor.java        2000/12/15 22:57:19     1.16
  +++ HttpProcessor.java        2000/12/16 19:01:24     1.17
  @@ -1,7 +1,7 @@
   /*
  - * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/connector/http/HttpProcessor.java,v
 1.16 2000/12/15 22:57:19 craigmcc Exp $
  - * $Revision: 1.16 $
  - * $Date: 2000/12/15 22:57:19 $
  + * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/connector/http/HttpProcessor.java,v
 1.17 2000/12/16 19:01:24 remm Exp $
  + * $Revision: 1.17 $
  + * $Date: 2000/12/16 19:01:24 $
    *
    * ====================================================================
    *
  @@ -67,6 +67,7 @@
   
   import java.io.BufferedInputStream;
   import java.io.EOFException;
  +import java.io.InterruptedIOException;
   import java.io.InputStream;
   import java.io.IOException;
   import java.io.OutputStream;
  @@ -106,7 +107,7 @@
    *
    * @author Craig R. McClanahan
    * @author Remy Maucherat
  - * @version $Revision: 1.16 $ $Date: 2000/12/15 22:57:19 $
  + * @version $Revision: 1.17 $ $Date: 2000/12/16 19:01:24 $
    */
   
   final class HttpProcessor
  @@ -791,7 +792,8 @@
                       }
                   }
               } catch (EOFException e) {
  -                //log("process.parse:  EOFException:  " + e);
  +                ok = false;
  +            } catch (InterruptedIOException e) {
                   ok = false;
               } catch (Exception e) {
                   try {
  
  
  

Reply via email to