From b0dee02bf9ba7c3569f4de2d104b9814f0327ea3 Mon Sep 17 00:00:00 2001 From: Pepijn Van Eeckhoudt Date: Mon, 26 Nov 2018 15:16:43 +0100 Subject: [PATCH] Handle server initiated global requests (#472) * Handle server initiated global requests * Code layout --- .../schmizz/sshj/connection/ConnectionImpl.java | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/src/main/java/net/schmizz/sshj/connection/ConnectionImpl.java b/src/main/java/net/schmizz/sshj/connection/ConnectionImpl.java index 5657d3a1..cfaee366 100644 --- a/src/main/java/net/schmizz/sshj/connection/ConnectionImpl.java +++ b/src/main/java/net/schmizz/sshj/connection/ConnectionImpl.java @@ -130,6 +130,9 @@ public class ConnectionImpl getChannel(buf).handle(msg, buf); } else if (msg.in(80, 90)) { switch (msg) { + case GLOBAL_REQUEST: + gotGlobalRequest(buf); + break; case REQUEST_SUCCESS: gotGlobalReqResponse(buf); break; @@ -259,6 +262,20 @@ public class ConnectionImpl channels.clear(); } + private void gotGlobalRequest(SSHPacket buf) + throws ConnectionException, TransportException { + try { + final String requestName = buf.readString(); + boolean wantReply = buf.readBoolean(); + log.debug("Received GLOBAL_REQUEST `{}`; want reply: {}", requestName, wantReply); + if (wantReply) { + trans.write(new SSHPacket(Message.REQUEST_FAILURE)); + } + } catch (Buffer.BufferException be) { + throw new ConnectionException(be); + } + } + @Override public void setTimeoutMs(int timeoutMs) { this.timeoutMs = timeoutMs;