diff --git a/src/main/java/net/schmizz/sshj/connection/channel/AbstractChannel.java b/src/main/java/net/schmizz/sshj/connection/channel/AbstractChannel.java index 215f14bd..cf49ff40 100644 --- a/src/main/java/net/schmizz/sshj/connection/channel/AbstractChannel.java +++ b/src/main/java/net/schmizz/sshj/connection/channel/AbstractChannel.java @@ -52,6 +52,8 @@ public abstract class AbstractChannel /** Remote recipient ID */ private int recipient; + private boolean eof = false; + private final Queue> chanReqResponseEvents = new LinkedList>(); /* The lock used by to create the open & close events */ @@ -191,6 +193,11 @@ public abstract class AbstractChannel } } + @Override + public boolean isEOF() { + return eof; + } + @Override public LoggerFactory getLoggerFactory() { return loggerFactory; @@ -394,6 +401,7 @@ public abstract class AbstractChannel /** Called when EOF has been received. Subclasses can override but must call super. */ protected void eofInputStreams() { in.eof(); + eof = true; } @Override diff --git a/src/main/java/net/schmizz/sshj/connection/channel/Channel.java b/src/main/java/net/schmizz/sshj/connection/channel/Channel.java index 4ad9f975..a1fa7e69 100644 --- a/src/main/java/net/schmizz/sshj/connection/channel/Channel.java +++ b/src/main/java/net/schmizz/sshj/connection/channel/Channel.java @@ -135,6 +135,11 @@ public interface Channel void join(long timeout, TimeUnit unit) throws ConnectionException; + /** + * Returns whether EOF has been received. + */ + boolean isEOF(); + /** * Get the LoggerFactory associated with the SSH client. */ diff --git a/src/main/java/net/schmizz/sshj/sftp/FileMode.java b/src/main/java/net/schmizz/sshj/sftp/FileMode.java index 7ee09c44..e87de80c 100644 --- a/src/main/java/net/schmizz/sshj/sftp/FileMode.java +++ b/src/main/java/net/schmizz/sshj/sftp/FileMode.java @@ -36,7 +36,7 @@ public class FileMode { /** directory */ DIRECTORY(0040000), /** symbolic link */ - SYMKLINK(0120000), + SYMLINK(0120000), /** unknown */ UNKNOWN(0); diff --git a/src/main/java/net/schmizz/sshj/sftp/Response.java b/src/main/java/net/schmizz/sshj/sftp/Response.java index ff88830a..a44fac9d 100644 --- a/src/main/java/net/schmizz/sshj/sftp/Response.java +++ b/src/main/java/net/schmizz/sshj/sftp/Response.java @@ -30,7 +30,30 @@ public final class Response BAD_MESSAGE(5), NO_CONNECTION(6), CONNECITON_LOST(7), - OP_UNSUPPORTED(8); + OP_UNSUPPORTED(8), + INVALID_HANDLE(9), + NO_SUCH_PATH(10), + FILE_ALREADY_EXISTS(11), + WRITE_PROTECT(12), + NO_MEDIA(13), + NO_SPACE_ON_FILESYSTEM(14), + QUOTA_EXCEEDED(15), + UNKNOWN_PRINCIPAL(16), + LOCK_CONFLICT(17), + DIR_NOT_EMPTY(18), + NOT_A_DIRECTORY(19), + INVALID_FILENAME(20), + LINK_LOOP(21), + CANNOT_DELETE(22), + INVALID_PARAMETER(23), + FILE_IS_A_DIRECTORY(24), + BYTE_RANGE_LOCK_CONFLICT(25), + BYTE_RANGE_LOCK_REFUSED(26), + DELETE_PENDING(27), + FILE_CORRUPT(28), + OWNER_INVALID(29), + GROUP_INVALID(30), + NO_MATCHING_BYTE_RANGE_LOCK(31); private final int code;