You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hc.apache.org by ol...@apache.org on 2008/06/01 21:23:59 UTC
svn commit: r662268 -
/httpcomponents/httpcore/trunk/module-nio/src/main/java/org/apache/http/impl/nio/reactor/SSLIOSession.java
Author: olegk
Date: Sun Jun 1 12:23:59 2008
New Revision: 662268
URL: http://svn.apache.org/viewvc?rev=662268&view=rev
Log:
Better handling of SSL session closure
Modified:
httpcomponents/httpcore/trunk/module-nio/src/main/java/org/apache/http/impl/nio/reactor/SSLIOSession.java
Modified: httpcomponents/httpcore/trunk/module-nio/src/main/java/org/apache/http/impl/nio/reactor/SSLIOSession.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/trunk/module-nio/src/main/java/org/apache/http/impl/nio/reactor/SSLIOSession.java?rev=662268&r1=662267&r2=662268&view=diff
==============================================================================
--- httpcomponents/httpcore/trunk/module-nio/src/main/java/org/apache/http/impl/nio/reactor/SSLIOSession.java (original)
+++ httpcomponents/httpcore/trunk/module-nio/src/main/java/org/apache/http/impl/nio/reactor/SSLIOSession.java Sun Jun 1 12:23:59 2008
@@ -184,6 +184,13 @@
}
private void updateEventMask() {
+ if (this.sslEngine.isInboundDone() && this.sslEngine.isOutboundDone()) {
+ this.status = CLOSED;
+ }
+ if (this.status == CLOSED) {
+ this.session.close();
+ return;
+ }
// Need to toggle the event mask for this channel?
int oldMask = this.session.getEventMask();
int newMask = oldMask;
@@ -214,10 +221,6 @@
this.outEncrypted.flip();
int bytesWritten = this.session.channel().write(this.outEncrypted);
this.outEncrypted.compact();
-
- if (this.sslEngine.isInboundDone() && this.sslEngine.isOutboundDone()) {
- this.session.close();
- }
return bytesWritten;
}
@@ -256,13 +259,9 @@
return this.status == ACTIVE
&& this.sslEngine.getHandshakeStatus() == HandshakeStatus.NOT_HANDSHAKING;
}
-
+
public synchronized void inboundTransport() throws IOException {
- if (this.status == CLOSED) {
- this.session.close();
- } else {
- updateEventMask();
- }
+ updateEventMask();
}
public synchronized void outboundTransport() throws IOException {