Author: remm
Date: Wed Nov 29 08:19:23 2006
New Revision: 480612

URL: http://svn.apache.org/viewvc?view=rev&rev=480612
Log:
- For consistency, add keepAliveTimeout to this protocol handler.

Modified:
    tomcat/tc6.0.x/trunk/java/org/apache/coyote/ajp/AjpProcessor.java
    tomcat/tc6.0.x/trunk/java/org/apache/coyote/ajp/AjpProtocol.java

Modified: tomcat/tc6.0.x/trunk/java/org/apache/coyote/ajp/AjpProcessor.java
URL: 
http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/java/org/apache/coyote/ajp/AjpProcessor.java?view=diff&rev=480612&r1=480611&r2=480612
==============================================================================
--- tomcat/tc6.0.x/trunk/java/org/apache/coyote/ajp/AjpProcessor.java (original)
+++ tomcat/tc6.0.x/trunk/java/org/apache/coyote/ajp/AjpProcessor.java Wed Nov 
29 08:19:23 2006
@@ -327,6 +327,16 @@
     public void setRequiredSecret(String requiredSecret) { this.requiredSecret 
= requiredSecret; }
 
 
+    /**
+     * The number of milliseconds Tomcat will wait for a subsequent request
+     * before closing the connection. The default is the same as for
+     * Apache HTTP Server (15 000 milliseconds).
+     */
+    protected int keepAliveTimeout = -1;
+    public int getKeepAliveTimeout() { return keepAliveTimeout; }
+    public void setKeepAliveTimeout(int timeout) { keepAliveTimeout = timeout; 
}
+
+
     // --------------------------------------------------------- Public Methods
 
 
@@ -354,6 +364,10 @@
         this.socket = socket;
         input = socket.getInputStream();
         output = socket.getOutputStream();
+        int soTimeout = -1;
+        if (keepAliveTimeout > 0) {
+            soTimeout = socket.getSoTimeout();
+        }
 
         // Error flag
         error = false;
@@ -362,11 +376,19 @@
 
             // Parsing the request header
             try {
+                // Set keep alive timeout if enabled
+                if (keepAliveTimeout > 0) {
+                    socket.setSoTimeout(keepAliveTimeout);
+                }
                 // Get first message of the request
                 if (!readMessage(requestHeaderMessage)) {
                     // This means a connection timeout
                     rp.setStage(org.apache.coyote.Constants.STAGE_ENDED);
                     break;
+                }
+                // Set back timeout if keep alive timeout is enabled
+                if (keepAliveTimeout > 0) {
+                    socket.setSoTimeout(soTimeout);
                 }
                 // Check message type, process right away and break if
                 // not regular request processing

Modified: tomcat/tc6.0.x/trunk/java/org/apache/coyote/ajp/AjpProtocol.java
URL: 
http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/java/org/apache/coyote/ajp/AjpProtocol.java?view=diff&rev=480612&r1=480611&r2=480612
==============================================================================
--- tomcat/tc6.0.x/trunk/java/org/apache/coyote/ajp/AjpProtocol.java (original)
+++ tomcat/tc6.0.x/trunk/java/org/apache/coyote/ajp/AjpProtocol.java Wed Nov 29 
08:19:23 2006
@@ -389,6 +389,16 @@
     }
 
     
+    /**
+     * The number of seconds Tomcat will wait for a subsequent request
+     * before closing the connection. The default is the same as for
+     * Apache HTTP Server (15 000 milliseconds).
+     */
+    protected int keepAliveTimeout = -1;
+    public int getKeepAliveTimeout() { return keepAliveTimeout; }
+    public void setKeepAliveTimeout(int timeout) { keepAliveTimeout = timeout; 
}
+
+
     // --------------------------------------  AjpConnectionHandler Inner Class
 
 
@@ -411,6 +421,7 @@
                     processor.setAdapter(proto.adapter);
                     
processor.setTomcatAuthentication(proto.tomcatAuthentication);
                     processor.setRequiredSecret(proto.requiredSecret);
+                    processor.setKeepAliveTimeout(proto.keepAliveTimeout);
                     localProcessor.set(processor);
                     if (proto.getDomain() != null) {
                         synchronized (this) {



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to