Align connectors - setting timeouts
authormarkt <markt@13f79535-47bb-0310-9956-ffa450edef68>
Tue, 6 Sep 2011 16:05:29 +0000 (16:05 +0000)
committermarkt <markt@13f79535-47bb-0310-9956-ffa450edef68>
Tue, 6 Sep 2011 16:05:29 +0000 (16:05 +0000)
git-svn-id: https://svn.apache.org/repos/asf/tomcat/trunk@1165738 13f79535-47bb-0310-9956-ffa450edef68

java/org/apache/coyote/http11/AbstractHttp11Processor.java
java/org/apache/coyote/http11/Http11AprProcessor.java
java/org/apache/coyote/http11/Http11NioProcessor.java
java/org/apache/coyote/http11/Http11Processor.java

index c8448ba..5141f0c 100644 (file)
@@ -830,6 +830,13 @@ public abstract class AbstractHttp11Processor<S> extends AbstractProcessor<S> {
      */
     protected abstract boolean handleIncompleteRequestLineRead();
 
+
+    /**
+     * Set the socket timeout.
+     */
+    protected abstract void setSocketTimeout(int timeout) throws IOException;
+
+
     /**
      * After reading the request headers, we have to setup the request filters.
      */
index 74e0ff2..2456145 100644 (file)
@@ -194,8 +194,6 @@ public class Http11AprProcessor extends AbstractHttp11Processor<Long> {
             socketWrapper.setKeepAliveLeft(0);
         }
 
-        long socketRef = socketWrapper.getSocket().longValue();
-
         while (!error && keepAlive && !comet && !isAsync() &&
                 !endpoint.isPaused()) {
 
@@ -226,8 +224,7 @@ public class Http11AprProcessor extends AbstractHttp11Processor<Long> {
                         break;
                     }
                     if (!disableUploadTimeout) {
-                        Socket.timeoutSet(socketRef,
-                                connectionUploadTimeout * 1000);
+                        setSocketTimeout(connectionUploadTimeout);
                     }
                 }
             } catch (IOException e) {
@@ -328,7 +325,7 @@ public class Http11AprProcessor extends AbstractHttp11Processor<Long> {
             }
 
             if (!disableUploadTimeout) {
-                Socket.timeoutSet(socketRef, endpoint.getSoTimeout() * 1000);
+                setSocketTimeout(endpoint.getSoTimeout());
             }
 
             rp.setStage(org.apache.coyote.Constants.STAGE_KEEPALIVE);
@@ -411,6 +408,12 @@ public class Http11AprProcessor extends AbstractHttp11Processor<Long> {
 
 
     @Override
+    protected void setSocketTimeout(int timeout) {
+        Socket.timeoutSet(socket.getSocket().longValue(), timeout * 1000);
+    }
+    
+    
+    @Override
     protected void setCometTimeouts(SocketWrapper<Long> socketWrapper) {
         // NO-OP for APR/native
     }
index ab27485..6c9791e 100644 (file)
@@ -252,9 +252,8 @@ public class Http11NioProcessor extends AbstractHttp11Processor<NioChannel> {
                         readComplete = false;
                         break;
                     }
-                    if (!disableUploadTimeout) { //only for body, not for request headers
-                        socketWrapper.getSocket().getIOChannel().socket().setSoTimeout(
-                                connectionUploadTimeout);
+                    if (!disableUploadTimeout) {
+                        setSocketTimeout(connectionUploadTimeout);
                     }
                 }
             } catch (IOException e) {
@@ -354,9 +353,8 @@ public class Http11NioProcessor extends AbstractHttp11Processor<NioChannel> {
                 outputBuffer.nextRequest();
             }
 
-            if (!disableUploadTimeout) { //only for body, not for request headers
-                socketWrapper.getSocket().getIOChannel().socket().setSoTimeout(
-                        endpoint.getSoTimeout());
+            if (!disableUploadTimeout) {
+                setSocketTimeout(endpoint.getSoTimeout());
             }
 
             rp.setStage(org.apache.coyote.Constants.STAGE_KEEPALIVE);
@@ -447,6 +445,12 @@ public class Http11NioProcessor extends AbstractHttp11Processor<NioChannel> {
 
 
     @Override
+    protected void setSocketTimeout(int timeout) throws IOException {
+        socket.getSocket().getIOChannel().socket().setSoTimeout(timeout);
+    }
+
+    
+    @Override
     protected void setCometTimeouts(SocketWrapper<NioChannel> socketWrapper) {
         // Comet support
         SelectionKey key = socketWrapper.getSocket().getIOChannel().keyFor(
index 6c883aa..74176fb 100644 (file)
@@ -188,7 +188,7 @@ public class Http11Processor extends AbstractHttp11Processor<Socket> {
                         break;
                     }
                     if (!disableUploadTimeout) {
-                        socket.getSocket().setSoTimeout(connectionUploadTimeout);
+                        setSocketTimeout(connectionUploadTimeout);
                     }
                 }
             } catch (IOException e) {
@@ -289,7 +289,7 @@ public class Http11Processor extends AbstractHttp11Processor<Socket> {
             }
 
             if (!disableUploadTimeout) {
-                socket.getSocket().setSoTimeout(endpoint.getSoTimeout());
+                setSocketTimeout(endpoint.getSoTimeout());
             }
 
             rp.setStage(org.apache.coyote.Constants.STAGE_KEEPALIVE);
@@ -397,6 +397,12 @@ public class Http11Processor extends AbstractHttp11Processor<Socket> {
 
 
     @Override
+    protected void setSocketTimeout(int timeout) throws IOException {
+        socket.getSocket().setSoTimeout(timeout);
+    }
+    
+    
+    @Override
     protected void setCometTimeouts(SocketWrapper<Socket> socketWrapper) {
         // NO-OP for BIO
     }