diff --git a/src/main/java/net/schmizz/sshj/xfer/scp/SCPDownloadClient.java b/src/main/java/net/schmizz/sshj/xfer/scp/SCPDownloadClient.java index 9772bc69..d9408b06 100644 --- a/src/main/java/net/schmizz/sshj/xfer/scp/SCPDownloadClient.java +++ b/src/main/java/net/schmizz/sshj/xfer/scp/SCPDownloadClient.java @@ -123,7 +123,7 @@ public final class SCPDownloadClient extends AbstractSCPClient { case (char) 1: case (char) 2: - throw new SCPException("Remote SCP command returned error: " + msg.substring(1)); + throw new SCPRemoteException("Remote SCP command returned error: " + msg.substring(1), msg.substring(1)); default: final String err = "Unrecognized message: `" + msg + "`"; @@ -202,4 +202,4 @@ public final class SCPDownloadClient extends AbstractSCPClient { return parts; } -} \ No newline at end of file +} diff --git a/src/main/java/net/schmizz/sshj/xfer/scp/SCPEngine.java b/src/main/java/net/schmizz/sshj/xfer/scp/SCPEngine.java index 887745e8..67a672f6 100644 --- a/src/main/java/net/schmizz/sshj/xfer/scp/SCPEngine.java +++ b/src/main/java/net/schmizz/sshj/xfer/scp/SCPEngine.java @@ -69,7 +69,8 @@ class SCPEngine { return; case 1: // Warning? not case 2: - throw new SCPException("Remote SCP command had error: " + readMessage()); + final String remoteMessage = readMessage(); + throw new SCPRemoteException("Remote SCP command had error: " + remoteMessage, remoteMessage); default: throw new SCPException("Received unknown response code"); } diff --git a/src/main/java/net/schmizz/sshj/xfer/scp/SCPRemoteException.java b/src/main/java/net/schmizz/sshj/xfer/scp/SCPRemoteException.java new file mode 100644 index 00000000..25a257b4 --- /dev/null +++ b/src/main/java/net/schmizz/sshj/xfer/scp/SCPRemoteException.java @@ -0,0 +1,15 @@ +package net.schmizz.sshj.xfer.scp; + +public class SCPRemoteException extends SCPException +{ + private final String remoteMessage; + + public SCPRemoteException(String message, String remoteMessage) { + super(message); + this.remoteMessage = remoteMessage; + } + + public String getRemoteMessage() { + return remoteMessage; + } +}