You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mina.apache.org by el...@apache.org on 2019/04/09 07:26:47 UTC
[mina] branch mina-write-request updated (4fec50c -> 73e881a)
This is an automated email from the ASF dual-hosted git repository.
elecharny pushed a change to branch mina-write-request
in repository https://gitbox.apache.org/repos/asf/mina.git.
from 4fec50c Typoes
new bdc43e6 Cleanup the buffers just after the message has been inflated/deflated, so that they can be GCed (cf DIRMINA-1103)
new 6e5b966 Replaced tabs by spaces
new 73e881a Fixed some SSL code
The 3 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
Summary of changes:
.../java/org/apache/mina/filter/ssl/SslFilter.java | 2 +-
.../org/apache/mina/filter/ssl/SslHandler.java | 34 +++++++++++++++++++---
.../java/org/apache/mina/filter/ssl/SslTest.java | 1 -
mina-filter-compression/pom.xml | 14 ++++-----
.../org/apache/mina/filter/compression/Zlib.java | 4 +++
5 files changed, 42 insertions(+), 13 deletions(-)
[mina] 03/03: Fixed some SSL code
Posted by el...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
elecharny pushed a commit to branch mina-write-request
in repository https://gitbox.apache.org/repos/asf/mina.git
commit 73e881ad935e5aa6080b90585ac8dc8ddfc377e1
Author: emmanuel lecharny <el...@apache.org>
AuthorDate: Tue Apr 9 09:26:43 2019 +0200
Fixed some SSL code
---
.../java/org/apache/mina/filter/ssl/SslFilter.java | 2 +-
.../org/apache/mina/filter/ssl/SslHandler.java | 34 +++++++++++++++++++---
.../java/org/apache/mina/filter/ssl/SslTest.java | 1 -
3 files changed, 31 insertions(+), 6 deletions(-)
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 2638f0c..7fc2591 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
@@ -857,7 +857,7 @@ public class SslFilter extends IoFilterAdapter {
* message, but not for handshake messages, which will be swallowed.
*
*/
- private static class EncryptedWriteRequest extends DefaultWriteRequest {
+ /* package protected */ static class EncryptedWriteRequest extends DefaultWriteRequest {
// Thee encrypted messagee
private final IoBuffer encryptedMessage;
diff --git a/mina-core/src/main/java/org/apache/mina/filter/ssl/SslHandler.java b/mina-core/src/main/java/org/apache/mina/filter/ssl/SslHandler.java
index cbc6bd6..3da0fe4 100644
--- a/mina-core/src/main/java/org/apache/mina/filter/ssl/SslHandler.java
+++ b/mina-core/src/main/java/org/apache/mina/filter/ssl/SslHandler.java
@@ -33,6 +33,7 @@ import javax.net.ssl.SSLEngineResult.Status;
import javax.net.ssl.SSLException;
import javax.net.ssl.SSLHandshakeException;
+import org.apache.mina.core.RuntimeIoException;
import org.apache.mina.core.buffer.IoBuffer;
import org.apache.mina.core.filterchain.IoFilter.NextFilter;
import org.apache.mina.core.filterchain.IoFilterEvent;
@@ -42,6 +43,7 @@ import org.apache.mina.core.session.IoEventType;
import org.apache.mina.core.session.IoSession;
import org.apache.mina.core.write.DefaultWriteRequest;
import org.apache.mina.core.write.WriteRequest;
+import org.apache.mina.filter.ssl.SslFilter.EncryptedWriteRequest;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -528,9 +530,34 @@ class SslHandler {
* UNDERFLOW - Need to read more data from the socket. It's normal.
* CLOSED - The other peer closed the socket. Also normal.
*/
- if (status == SSLEngineResult.Status.BUFFER_OVERFLOW) {
- throw new SSLException("SSLEngine error during decrypt: " + status + " inNetBuffer: " + inNetBuffer
+ switch (status) {
+ case BUFFER_OVERFLOW:
+ throw new SSLException("SSLEngine error during decrypt: " + status + " inNetBuffer: " + inNetBuffer
+ "appBuffer: " + appBuffer);
+ case CLOSED:
+ Exception exception =new RuntimeIoException("SSL/TLS close_notify received");
+
+ // Empty the Ssl queue
+ for (IoFilterEvent event:filterWriteEventQueue) {
+ EncryptedWriteRequest writeRequest = (EncryptedWriteRequest)event.getParameter();
+ WriteFuture writeFuture = writeRequest.getParentRequest().getFuture();
+ writeFuture.setException(exception);
+ writeFuture.notifyAll();
+ }
+
+ // Empty the session queue
+ while (!session.getWriteRequestQueue().isEmpty(session)) {
+ WriteRequest writeRequest = session.getWriteRequestQueue().poll( session );
+ WriteFuture writeFuture = writeRequest.getFuture();
+ writeFuture.setException(exception);
+ writeFuture.notifyAll();
+ }
+
+ // We *must* shutdown session
+ session.closeNow();
+ break;
+ default:
+ break;
}
}
@@ -595,8 +622,7 @@ class SslHandler {
}
// First make sure that the out buffer is completely empty.
- // Since we
- // cannot call wrap with data left on the buffer
+ // Since we cannot call wrap with data left on the buffer
if (outNetBuffer != null && outNetBuffer.hasRemaining()) {
return;
}
diff --git a/mina-core/src/test/java/org/apache/mina/filter/ssl/SslTest.java b/mina-core/src/test/java/org/apache/mina/filter/ssl/SslTest.java
index 23d7fd8..e61bad6 100644
--- a/mina-core/src/test/java/org/apache/mina/filter/ssl/SslTest.java
+++ b/mina-core/src/test/java/org/apache/mina/filter/ssl/SslTest.java
@@ -152,7 +152,6 @@ public class SslTest {
String line = in.readLine();
//System.out.println("Client got: " + line);
socket.close();
-
}
private static SSLContext createSSLContext() throws IOException, GeneralSecurityException {
[mina] 01/03: Cleanup the buffers just after the message has been
inflated/deflated, so that they can be GCed (cf DIRMINA-1103)
Posted by el...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
elecharny pushed a commit to branch mina-write-request
in repository https://gitbox.apache.org/repos/asf/mina.git
commit bdc43e6d0953d43171e61204d4791274f6ae22b9
Author: emmanuel lecharny <el...@apache.org>
AuthorDate: Fri Apr 5 15:47:47 2019 +0200
Cleanup the buffers just after the message has been inflated/deflated,
so that they can be GCed (cf DIRMINA-1103)
---
.../src/main/java/org/apache/mina/filter/compression/Zlib.java | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/mina-filter-compression/src/main/java/org/apache/mina/filter/compression/Zlib.java b/mina-filter-compression/src/main/java/org/apache/mina/filter/compression/Zlib.java
index dc7a07c..3908b91 100644
--- a/mina-filter-compression/src/main/java/org/apache/mina/filter/compression/Zlib.java
+++ b/mina-filter-compression/src/main/java/org/apache/mina/filter/compression/Zlib.java
@@ -153,6 +153,8 @@ class Zlib {
}
}
} while (zStream.avail_in > 0);
+
+ cleanUp();
}
return outBuffer.flip();
@@ -198,6 +200,8 @@ class Zlib {
IoBuffer outBuf = IoBuffer.wrap(outBytes, 0, zStream.next_out_index);
+ cleanUp();
+
return outBuf;
}
}
[mina] 02/03: Replaced tabs by spaces
Posted by el...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
elecharny pushed a commit to branch mina-write-request
in repository https://gitbox.apache.org/repos/asf/mina.git
commit 6e5b966aacb9aebed0c316d2014b8f4c48928790
Author: emmanuel lecharny <el...@apache.org>
AuthorDate: Sat Apr 6 09:46:50 2019 +0200
Replaced tabs by spaces
---
mina-filter-compression/pom.xml | 14 +++++++-------
1 file changed, 7 insertions(+), 7 deletions(-)
diff --git a/mina-filter-compression/pom.xml b/mina-filter-compression/pom.xml
index 6202484..ea0b294 100644
--- a/mina-filter-compression/pom.xml
+++ b/mina-filter-compression/pom.xml
@@ -65,13 +65,13 @@
org.apache.mina.filter.compression;version=${project.version};-noimport:=true
</Export-Package>
<Import-Package>
- org.apache.mina.core.buffer;version=${project.version},
- org.apache.mina.core.filterchain;version=${project.version},
- org.apache.mina.core.session;version=${project.version},
- org.apache.mina.core.write;version=${project.version},
- org.apache.mina.filter.util;version=${project.version},
- com.jcraft.jzlib;version=${version.jzlib},
- org.slf4j;version=${osgi-min-version.slf4j.api}
+ org.apache.mina.core.buffer;version=${project.version},
+ org.apache.mina.core.filterchain;version=${project.version},
+ org.apache.mina.core.session;version=${project.version},
+ org.apache.mina.core.write;version=${project.version},
+ org.apache.mina.filter.util;version=${project.version},
+ com.jcraft.jzlib;version=${version.jzlib},
+ org.slf4j;version=${osgi-min-version.slf4j.api}
</Import-Package>
</instructions>
</configuration>