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 {