You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mina.apache.org by jo...@apache.org on 2021/08/02 03:40:52 UTC

[mina] 07/15: Fix for ssl2 request backlog

This is an automated email from the ASF dual-hosted git repository.

johnnyv pushed a commit to branch bugfix/DIRMINA1132
in repository https://gitbox.apache.org/repos/asf/mina.git

commit 81272b9aea790447e126036773a94deb71373bae
Author: Jonathan Valliere <jo...@emoten.com>
AuthorDate: Sat Jul 24 12:00:07 2021 -0400

    Fix for ssl2 request backlog
---
 .../java/org/apache/mina/filter/ssl2/SSL2Filter.java    |  2 ++
 .../java/org/apache/mina/filter/ssl2/SSL2HandlerG0.java | 17 +++++++++++++++--
 .../org/apache/mina/filter/ssl2/SSL2SimpleTest.java     | 12 ++++++------
 3 files changed, 23 insertions(+), 8 deletions(-)

diff --git a/mina-core/src/main/java/org/apache/mina/filter/ssl2/SSL2Filter.java b/mina-core/src/main/java/org/apache/mina/filter/ssl2/SSL2Filter.java
index 8bd9fa4..052f806 100644
--- a/mina-core/src/main/java/org/apache/mina/filter/ssl2/SSL2Filter.java
+++ b/mina-core/src/main/java/org/apache/mina/filter/ssl2/SSL2Filter.java
@@ -211,6 +211,8 @@ public class SSL2Filter extends IoFilterAdapter {
 		}
 
 		x.open(next);
+		
+		super.sessionOpened(next, session);
 	}
 
 	@Override
diff --git a/mina-core/src/main/java/org/apache/mina/filter/ssl2/SSL2HandlerG0.java b/mina-core/src/main/java/org/apache/mina/filter/ssl2/SSL2HandlerG0.java
index 86d8d23..803927f 100644
--- a/mina-core/src/main/java/org/apache/mina/filter/ssl2/SSL2HandlerG0.java
+++ b/mina-core/src/main/java/org/apache/mina/filter/ssl2/SSL2HandlerG0.java
@@ -119,8 +119,21 @@ public class SSL2HandlerG0 extends SSL2Handler {
 			LOGGER.debug("{} write() - source {}", toString(), request);
 		}
 
-		this.mWriteQueue.add(request);
-		this.lflush(next);
+		if (this.mWriteQueue.isEmpty()) {
+			if (lwrite(next, request) == false) {
+				if (LOGGER.isDebugEnabled()) {
+					LOGGER.debug("{} write() - unable to write right now, saving request for later", toString(), request);
+				}
+
+				this.mWriteQueue.add(request);
+			}
+		} else {
+			if (LOGGER.isDebugEnabled()) {
+				LOGGER.debug("{} write() - unable to write right now, saving request for later", toString(), request);
+			}
+
+			this.mWriteQueue.add(request);
+		}
 	}
 
 	/**
diff --git a/mina-core/src/test/java/org/apache/mina/filter/ssl2/SSL2SimpleTest.java b/mina-core/src/test/java/org/apache/mina/filter/ssl2/SSL2SimpleTest.java
index 88e92b5..beb6577 100644
--- a/mina-core/src/test/java/org/apache/mina/filter/ssl2/SSL2SimpleTest.java
+++ b/mina-core/src/test/java/org/apache/mina/filter/ssl2/SSL2SimpleTest.java
@@ -71,16 +71,16 @@ public class SSL2SimpleTest {
 
 		final IoSession client_socket = connect_future.getSession();
 
-		try {
-			Thread.sleep(1000);
-		} catch (InterruptedException e) {
-
-		}
+//		try {
+//			Thread.sleep(1000);
+//		} catch (InterruptedException e) {
+//
+//		}
 
 		client_socket.write(createWriteRequest());
 
 		try {
-			Thread.sleep(100);
+			Thread.sleep(2000);
 		} catch (InterruptedException e) {
 
 		}