You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mina.apache.org by lg...@apache.org on 2019/12/24 18:32:43 UTC

[mina-sshd] 01/12: [SSHD-961] Not all messages are correctly handled in port forwarding mode

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

lgoldstein pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/mina-sshd.git

commit 3eeaa03a20b849da8c6e59bfa97534f6bb15bebb
Author: Fulvio Cavarretta <fu...@primeur.com>
AuthorDate: Tue Dec 24 19:41:04 2019 +0200

    [SSHD-961] Not all messages are correctly handled in port forwarding mode
---
 .../java/org/apache/sshd/common/forward/DefaultForwardingFilter.java | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/sshd-core/src/main/java/org/apache/sshd/common/forward/DefaultForwardingFilter.java b/sshd-core/src/main/java/org/apache/sshd/common/forward/DefaultForwardingFilter.java
index 7235b26..8836ece 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/forward/DefaultForwardingFilter.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/forward/DefaultForwardingFilter.java
@@ -1107,7 +1107,8 @@ public class DefaultForwardingFilter
                       session, channel, totalMessages, message.available());
             }
 
-            OpenFuture future = channel.getOpenFuture();
+            ClientChannelPendingMessagesQueue messagesQueue = channel.getPendingMessagesQueue();
+            OpenFuture future = messagesQueue.getCompletedFuture();
             Consumer<Throwable> errHandler = future.isOpened() ? null : e -> {
                 try {
                     exceptionCaught(session, e);
@@ -1117,7 +1118,7 @@ public class DefaultForwardingFilter
                         e.getMessage(), channel, err.getMessage());
                 }
             };
-            ClientChannelPendingMessagesQueue messagesQueue = channel.getPendingMessagesQueue();
+
             int pendCount = messagesQueue.handleIncomingMessage(buffer, errHandler);
             if (traceEnabled) {
                 log.trace("messageReceived({}) channel={} pend count={} after processing message",