diff --git a/src/main/java/net/schmizz/sshj/common/Message.java b/src/main/java/net/schmizz/sshj/common/Message.java index 28bd9077..dd730526 100644 --- a/src/main/java/net/schmizz/sshj/common/Message.java +++ b/src/main/java/net/schmizz/sshj/common/Message.java @@ -18,6 +18,7 @@ package net.schmizz.sshj.common; /** SSH message identifiers */ public enum Message { + UNKNOWN(0), DISCONNECT(1), IGNORE(2), UNIMPLEMENTED(3), @@ -68,6 +69,10 @@ public enum Message { static { for (Message c : Message.values()) cache[c.toByte()] = c; + for (int i = 0; i < 256; i++) { + if (cache[i] == null) + cache[i] = UNKNOWN; + } } public static Message fromByte(byte b) { diff --git a/src/main/java/net/schmizz/sshj/common/SSHPacket.java b/src/main/java/net/schmizz/sshj/common/SSHPacket.java index 0064bdc8..0da104d6 100644 --- a/src/main/java/net/schmizz/sshj/common/SSHPacket.java +++ b/src/main/java/net/schmizz/sshj/common/SSHPacket.java @@ -76,11 +76,7 @@ public class SSHPacket * @return the message identifier */ public Message readMessageID() { - byte b = readByte(); - Message cmd = Message.fromByte(b); - if (cmd == null) - throw new BufferException("Unknown message ID: " + b); - return cmd; + return Message.fromByte(readByte()); } /**