You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mina.apache.org by gn...@apache.org on 2014/02/10 16:41:33 UTC

[3/3] git commit: Finally fix Scp

Finally fix Scp

Project: http://git-wip-us.apache.org/repos/asf/mina-sshd/repo
Commit: http://git-wip-us.apache.org/repos/asf/mina-sshd/commit/417774f7
Tree: http://git-wip-us.apache.org/repos/asf/mina-sshd/tree/417774f7
Diff: http://git-wip-us.apache.org/repos/asf/mina-sshd/diff/417774f7

Branch: refs/heads/master
Commit: 417774f79684e7300d68a1a381a923826fee6721
Parents: 83fdcd2
Author: Guillaume Nodet <gn...@apache.org>
Authored: Mon Feb 10 16:41:23 2014 +0100
Committer: Guillaume Nodet <gn...@apache.org>
Committed: Mon Feb 10 16:41:23 2014 +0100

----------------------------------------------------------------------
 .../src/main/java/org/apache/sshd/common/scp/ScpHelper.java    | 2 ++
 sshd-core/src/test/java/org/apache/sshd/ScpTest.java           | 6 ++++++
 2 files changed, 8 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/417774f7/sshd-core/src/main/java/org/apache/sshd/common/scp/ScpHelper.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/scp/ScpHelper.java b/sshd-core/src/main/java/org/apache/sshd/common/scp/ScpHelper.java
index b9198f3..ea9911d 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/scp/ScpHelper.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/scp/ScpHelper.java
@@ -101,6 +101,7 @@ public class ScpHelper {
                 case 'E':
                     line = ((char) c) + readLine();
                     log.debug("Received header: " + line);
+                    ack();
                     return;
                 default:
                     //a real ack that has been acted upon already
@@ -264,6 +265,7 @@ public class ScpHelper {
     }
 
     public void send(List<String> paths, boolean recursive, boolean preserve) throws IOException {
+        readAck(false);
         for (String pattern : paths) {
             int idx = pattern.indexOf('*');
             if (idx >= 0) {

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/417774f7/sshd-core/src/test/java/org/apache/sshd/ScpTest.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/test/java/org/apache/sshd/ScpTest.java b/sshd-core/src/test/java/org/apache/sshd/ScpTest.java
index 4b978c5..49913aa 100644
--- a/sshd-core/src/test/java/org/apache/sshd/ScpTest.java
+++ b/sshd-core/src/test/java/org/apache/sshd/ScpTest.java
@@ -466,6 +466,8 @@ public class ScpTest extends BaseTest {
         InputStream is = c.getInputStream();
         c.setCommand("scp -f " + path);
         c.connect();
+        os.write(0);
+        os.flush();
         String header = readLine(is);
         assertEquals("C0644 11 out.txt", header);
         int length = Integer.parseInt(header.substring(6, header.indexOf(' ', 6)));
@@ -489,6 +491,8 @@ public class ScpTest extends BaseTest {
         InputStream is = c.getInputStream();
         c.setCommand("scp -r -f " + path);
         c.connect();
+        os.write(0);
+        os.flush();
         String header = readLine(is);
         assertTrue(header.startsWith("D0755 0 "));
         os.write(0);
@@ -519,6 +523,8 @@ public class ScpTest extends BaseTest {
         InputStream is = c.getInputStream();
         c.setCommand("scp -f " + path);
         c.connect();
+        os.write(0);
+        os.flush();
         assertEquals(2, is.read());
         c.disconnect();
         return null;