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 2014/11/24 10:37:04 UTC
svn commit: r1641343 - in /tomcat/trunk/java/org/apache/tomcat/util/net:
NioChannel.java NioEndpoint.java SecureNioChannel.java
Author: markt
Date: Mon Nov 24 09:37:03 2014
New Revision: 1641343
URL: http://svn.apache.org/r1641343
Log:
Fix SSL for NIO that was broken by AJP refactoring.
Add some TODO markers as this is only a temporary fix.
Modified:
tomcat/trunk/java/org/apache/tomcat/util/net/NioChannel.java
tomcat/trunk/java/org/apache/tomcat/util/net/NioEndpoint.java
tomcat/trunk/java/org/apache/tomcat/util/net/SecureNioChannel.java
Modified: tomcat/trunk/java/org/apache/tomcat/util/net/NioChannel.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/net/NioChannel.java?rev=1641343&r1=1641342&r2=1641343&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/tomcat/util/net/NioChannel.java (original)
+++ tomcat/trunk/java/org/apache/tomcat/util/net/NioChannel.java Mon Nov 24 09:37:03 2014
@@ -62,6 +62,8 @@ public class NioChannel implements ByteC
*/
public void reset() throws IOException {
bufHandler.getReadBuffer().clear();
+ // TODO AJP and HTTPS have different expectations for the state of
+ // the buffer at the start of a read. These need to be reconciled.
bufHandler.getReadBuffer().limit(0);
bufHandler.getWriteBuffer().clear();
this.sendFile = false;
Modified: tomcat/trunk/java/org/apache/tomcat/util/net/NioEndpoint.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/net/NioEndpoint.java?rev=1641343&r1=1641342&r2=1641343&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/tomcat/util/net/NioEndpoint.java (original)
+++ tomcat/trunk/java/org/apache/tomcat/util/net/NioEndpoint.java Mon Nov 24 09:37:03 2014
@@ -1635,6 +1635,8 @@ public class NioEndpoint extends Abstrac
readbuf = ByteBuffer.allocate(readsize);
writebuf = ByteBuffer.allocate(writesize);
}
+ // TODO AJP and HTTPS have different expectations for the state of
+ // the buffer at the start of a read. These need to be reconciled.
readbuf.limit(0);
}
Modified: tomcat/trunk/java/org/apache/tomcat/util/net/SecureNioChannel.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/net/SecureNioChannel.java?rev=1641343&r1=1641342&r2=1641343&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/tomcat/util/net/SecureNioChannel.java (original)
+++ tomcat/trunk/java/org/apache/tomcat/util/net/SecureNioChannel.java Mon Nov 24 09:37:03 2014
@@ -196,6 +196,10 @@ public class SecureNioChannel extends Ni
} else if ( handshake.getStatus() == Status.BUFFER_UNDERFLOW ){
//read more data, reregister for OP_READ
return SelectionKey.OP_READ;
+ } else if (handshake.getStatus() == Status.BUFFER_OVERFLOW) {
+ // TODO AJP and HTTPS have different expectations for the state of
+ // the buffer at the start of a read. These need to be reconciled.
+ bufHandler.getReadBuffer().compact();
} else {
throw new IOException(sm.getString("channel.nio.ssl.unexpectedStatusDuringWrap", handshakeStatus));
}//switch
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org