You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by ma...@apache.org on 2011/06/23 01:39:06 UTC
svn commit: r1138691 - in /tomcat/trunk/java/org/apache/coyote/http11:
Http11NioProcessor.java Http11NioProtocol.java
Author: markt
Date: Wed Jun 22 23:39:05 2011
New Revision: 1138691
URL: http://svn.apache.org/viewvc?rev=1138691&view=rev
Log:
Connector refactoring
SocketWrapper changes for HTTP processor
Modified:
tomcat/trunk/java/org/apache/coyote/http11/Http11NioProcessor.java
tomcat/trunk/java/org/apache/coyote/http11/Http11NioProtocol.java
Modified: tomcat/trunk/java/org/apache/coyote/http11/Http11NioProcessor.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http11/Http11NioProcessor.java?rev=1138691&r1=1138690&r2=1138691&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/coyote/http11/Http11NioProcessor.java (original)
+++ tomcat/trunk/java/org/apache/coyote/http11/Http11NioProcessor.java Wed Jun 22 23:39:05 2011
@@ -37,6 +37,7 @@ import org.apache.tomcat.util.net.NioEnd
import org.apache.tomcat.util.net.SSLSupport;
import org.apache.tomcat.util.net.SecureNioChannel;
import org.apache.tomcat.util.net.SocketStatus;
+import org.apache.tomcat.util.net.SocketWrapper;
/**
@@ -241,15 +242,15 @@ public class Http11NioProcessor extends
*
* @throws IOException error during an I/O operation
*/
- public SocketState process(NioChannel socket)
+ public SocketState process(SocketWrapper<NioChannel> socket)
throws IOException {
RequestInfo rp = request.getRequestProcessor();
rp.setStage(org.apache.coyote.Constants.STAGE_PARSE);
// Setting up the socket
- this.socket = socket;
- inputBuffer.setSocket(socket);
- outputBuffer.setSocket(socket);
+ this.socket = socket.getSocket();
+ inputBuffer.setSocket(this.socket);
+ outputBuffer.setSocket(this.socket);
inputBuffer.setSelectorPool(((NioEndpoint)endpoint).getSelectorPool());
outputBuffer.setSelectorPool(((NioEndpoint)endpoint).getSelectorPool());
@@ -264,15 +265,14 @@ public class Http11NioProcessor extends
boolean keptAlive = false;
boolean openSocket = false;
boolean readComplete = true;
- final KeyAttachment ka = (KeyAttachment)socket.getAttachment(false);
while (!error && keepAlive && !comet && !isAsync() && !endpoint.isPaused()) {
//always default to our soTimeout
- ka.setTimeout(soTimeout);
+ socket.setTimeout(soTimeout);
// Parsing the request header
try {
if( !disableUploadTimeout && keptAlive && soTimeout > 0 ) {
- socket.getIOChannel().socket().setSoTimeout((int)soTimeout);
+ socket.getSocket().getIOChannel().socket().setSoTimeout((int)soTimeout);
}
if (!inputBuffer.parseRequestLine(keptAlive)) {
// Haven't finished reading the request so keep the socket
@@ -282,7 +282,9 @@ public class Http11NioProcessor extends
if (inputBuffer.getParsingRequestLinePhase()<2) {
// No data read, OK to recycle the processor
// Continue to use keep alive timeout
- if (keepAliveTimeout>0) ka.setTimeout(keepAliveTimeout);
+ if (keepAliveTimeout>0) {
+ socket.setTimeout(keepAliveTimeout);
+ }
} else {
// Started to read request line. Need to keep processor
// associated with socket
@@ -308,7 +310,7 @@ public class Http11NioProcessor extends
}
request.setStartTime(System.currentTimeMillis());
if (!disableUploadTimeout) { //only for body, not for request headers
- socket.getIOChannel().socket().setSoTimeout(
+ socket.getSocket().getIOChannel().socket().setSoTimeout(
connectionUploadTimeout);
}
}
@@ -348,7 +350,7 @@ public class Http11NioProcessor extends
if (maxKeepAliveRequests == 1 )
keepAlive = false;
- if (maxKeepAliveRequests > 0 && ka.decrementKeepAlive() <= 0)
+ if (maxKeepAliveRequests > 0 && socket.decrementKeepAlive() <= 0)
keepAlive = false;
// Process the request in the adapter
@@ -367,7 +369,8 @@ public class Http11NioProcessor extends
statusDropsConnection(response.getStatus()));
}
// Comet support
- SelectionKey key = socket.getIOChannel().keyFor(socket.getPoller().getSelector());
+ SelectionKey key = socket.getSocket().getIOChannel().keyFor(
+ socket.getSocket().getPoller().getSelector());
if (key != null) {
NioEndpoint.KeyAttachment attach = (NioEndpoint.KeyAttachment) key.attachment();
if (attach != null) {
@@ -415,11 +418,13 @@ public class Http11NioProcessor extends
// Do sendfile as needed: add socket to sendfile and end
if (sendfileData != null && !error) {
- ka.setSendfileData(sendfileData);
+ ((KeyAttachment) socket).setSendfileData(sendfileData);
sendfileData.keepAlive = keepAlive;
- SelectionKey key = socket.getIOChannel().keyFor(socket.getPoller().getSelector());
+ SelectionKey key = socket.getSocket().getIOChannel().keyFor(
+ socket.getSocket().getPoller().getSelector());
//do the first write on this thread, might as well
- openSocket = socket.getPoller().processSendfile(key,ka,true,true);
+ openSocket = socket.getSocket().getPoller().processSendfile(key,
+ (KeyAttachment) socket, true, true);
break;
}
Modified: tomcat/trunk/java/org/apache/coyote/http11/Http11NioProtocol.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http11/Http11NioProtocol.java?rev=1138691&r1=1138690&r2=1138691&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/coyote/http11/Http11NioProtocol.java (original)
+++ tomcat/trunk/java/org/apache/coyote/http11/Http11NioProtocol.java Wed Jun 22 23:39:05 2011
@@ -263,7 +263,7 @@ public class Http11NioProtocol extends A
} else if (processor.comet) {
state = processor.event(status);
} else {
- state = processor.process(socket.getSocket());
+ state = processor.process(socket);
}
if (processor.isAsync()) {
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org