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 {