From: markt Date: Tue, 6 Sep 2011 16:05:29 +0000 (+0000) Subject: Align connectors - setting timeouts X-Git-Url: https://git.internetallee.de/?a=commitdiff_plain;h=14acfcf0614bdcbf6b13dfcb6f95c18010c6bab2;p=tomcat7.0 Align connectors - setting timeouts git-svn-id: https://svn.apache.org/repos/asf/tomcat/trunk@1165738 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/java/org/apache/coyote/http11/AbstractHttp11Processor.java b/java/org/apache/coyote/http11/AbstractHttp11Processor.java index c8448ba61..5141f0c0b 100644 --- a/java/org/apache/coyote/http11/AbstractHttp11Processor.java +++ b/java/org/apache/coyote/http11/AbstractHttp11Processor.java @@ -830,6 +830,13 @@ public abstract class AbstractHttp11Processor extends AbstractProcessor { */ 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. */ diff --git a/java/org/apache/coyote/http11/Http11AprProcessor.java b/java/org/apache/coyote/http11/Http11AprProcessor.java index 74e0ff29b..2456145b4 100644 --- a/java/org/apache/coyote/http11/Http11AprProcessor.java +++ b/java/org/apache/coyote/http11/Http11AprProcessor.java @@ -194,8 +194,6 @@ public class Http11AprProcessor extends AbstractHttp11Processor { socketWrapper.setKeepAliveLeft(0); } - long socketRef = socketWrapper.getSocket().longValue(); - while (!error && keepAlive && !comet && !isAsync() && !endpoint.isPaused()) { @@ -226,8 +224,7 @@ public class Http11AprProcessor extends AbstractHttp11Processor { break; } if (!disableUploadTimeout) { - Socket.timeoutSet(socketRef, - connectionUploadTimeout * 1000); + setSocketTimeout(connectionUploadTimeout); } } } catch (IOException e) { @@ -328,7 +325,7 @@ public class Http11AprProcessor extends AbstractHttp11Processor { } 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 { @Override + protected void setSocketTimeout(int timeout) { + Socket.timeoutSet(socket.getSocket().longValue(), timeout * 1000); + } + + + @Override protected void setCometTimeouts(SocketWrapper socketWrapper) { // NO-OP for APR/native } diff --git a/java/org/apache/coyote/http11/Http11NioProcessor.java b/java/org/apache/coyote/http11/Http11NioProcessor.java index ab2748531..6c9791e30 100644 --- a/java/org/apache/coyote/http11/Http11NioProcessor.java +++ b/java/org/apache/coyote/http11/Http11NioProcessor.java @@ -252,9 +252,8 @@ public class Http11NioProcessor extends AbstractHttp11Processor { 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 { 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 { @Override + protected void setSocketTimeout(int timeout) throws IOException { + socket.getSocket().getIOChannel().socket().setSoTimeout(timeout); + } + + + @Override protected void setCometTimeouts(SocketWrapper socketWrapper) { // Comet support SelectionKey key = socketWrapper.getSocket().getIOChannel().keyFor( diff --git a/java/org/apache/coyote/http11/Http11Processor.java b/java/org/apache/coyote/http11/Http11Processor.java index 6c883aa94..74176fb7b 100644 --- a/java/org/apache/coyote/http11/Http11Processor.java +++ b/java/org/apache/coyote/http11/Http11Processor.java @@ -188,7 +188,7 @@ public class Http11Processor extends AbstractHttp11Processor { break; } if (!disableUploadTimeout) { - socket.getSocket().setSoTimeout(connectionUploadTimeout); + setSocketTimeout(connectionUploadTimeout); } } } catch (IOException e) { @@ -289,7 +289,7 @@ public class Http11Processor extends AbstractHttp11Processor { } 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 { @Override + protected void setSocketTimeout(int timeout) throws IOException { + socket.getSocket().setSoTimeout(timeout); + } + + + @Override protected void setCometTimeouts(SocketWrapper socketWrapper) { // NO-OP for BIO }