Repository: mina Updated Branches: refs/heads/2.0 a01ad27f6 -> 38c83b5c7
Applied patch for DIRMINA-1073 Project: http://git-wip-us.apache.org/repos/asf/mina/repo Commit: http://git-wip-us.apache.org/repos/asf/mina/commit/38c83b5c Tree: http://git-wip-us.apache.org/repos/asf/mina/tree/38c83b5c Diff: http://git-wip-us.apache.org/repos/asf/mina/diff/38c83b5c Branch: refs/heads/2.0 Commit: 38c83b5c72b330d4d1f749360dad5f14ce75517a Parents: a01ad27 Author: Emmanuel Lécharny <elecha...@symas.com> Authored: Sat Oct 7 01:36:27 2017 +0200 Committer: Emmanuel Lécharny <elecha...@symas.com> Committed: Sat Oct 7 01:36:27 2017 +0200 ---------------------------------------------------------------------- .../org/apache/mina/filter/ssl/SslFilter.java | 24 ++++++++++++++++++++ .../transport/socket/nio/NioSocketSession.java | 2 +- 2 files changed, 25 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/mina/blob/38c83b5c/mina-core/src/main/java/org/apache/mina/filter/ssl/SslFilter.java ---------------------------------------------------------------------- diff --git a/mina-core/src/main/java/org/apache/mina/filter/ssl/SslFilter.java b/mina-core/src/main/java/org/apache/mina/filter/ssl/SslFilter.java index c2b92c2..b8659af 100644 --- a/mina-core/src/main/java/org/apache/mina/filter/ssl/SslFilter.java +++ b/mina-core/src/main/java/org/apache/mina/filter/ssl/SslFilter.java @@ -296,6 +296,26 @@ public class SslFilter extends IoFilterAdapter { } /** + * @return <tt>true</tt> if and only if the conditions for + * {@link #isSslStarted(IoSession)} are met, and the handhake has + * completed. + * + * @param session the session we want to check + */ + public boolean isSecured(IoSession session) { + SslHandler sslHandler = (SslHandler) session.getAttribute(SSL_HANDLER); + + if (sslHandler == null) { + return false; + } + + synchronized (sslHandler) { + return !sslHandler.isOutboundDone() && sslHandler.isHandshakeComplete(); + } + } + + + /** * Stops the SSL session by sending TLS <tt>close_notify</tt> message to * initiate TLS closure. * @@ -496,6 +516,10 @@ public class SslFilter extends IoFilterAdapter { IoBuffer buf = (IoBuffer) message; try { + /*if (sslHandler.isOutboundDone()) { + throw new SSLException("Outbound done"); + }*/ + // forward read encrypted data to SSL handler sslHandler.messageReceived(nextFilter, buf.buf()); http://git-wip-us.apache.org/repos/asf/mina/blob/38c83b5c/mina-core/src/main/java/org/apache/mina/transport/socket/nio/NioSocketSession.java ---------------------------------------------------------------------- diff --git a/mina-core/src/main/java/org/apache/mina/transport/socket/nio/NioSocketSession.java b/mina-core/src/main/java/org/apache/mina/transport/socket/nio/NioSocketSession.java index 80af30d..0208e3f 100644 --- a/mina-core/src/main/java/org/apache/mina/transport/socket/nio/NioSocketSession.java +++ b/mina-core/src/main/java/org/apache/mina/transport/socket/nio/NioSocketSession.java @@ -360,7 +360,7 @@ class NioSocketSession extends NioSession { if (sslFilter != null) { // Get the SslHandler from the SslFilter - return ((SslFilter)sslFilter).isSslStarted(this); + return ((SslFilter)sslFilter).isSecured(this); } else { return false; }