From b9347b8760da512c2790160b0b36bf6903021c3e Mon Sep 17 00:00:00 2001
From: Frasse <frasse@fworld.se>
Date: Wed, 5 Nov 2014 09:34:46 +0100
Subject: [PATCH] Check result after complete transfer

---
 example/scp_write.c |   22 ++++++++++++++++++++++
 1 files changed, 22 insertions(+), 0 deletions(-)

diff --git a/example/scp_write.c b/example/scp_write.c
index b38157b..41c8d94 100644
--- a/example/scp_write.c
+++ b/example/scp_write.c
@@ -186,6 +186,28 @@ int main(int argc, char *argv[])
         } while (nread);
 
     } while (1);
+    
+    fprintf(stderr,"Send a 0 to indicate transfer complete\n");
+    mem[0] = 0;
+    rc = libssh2_channel_write(channel,mem,1);
+    if (rc <= 0)
+        fprintf(stderr, "ERROR %d\n", rc);
+    fprintf(stderr,"Waiting for transfer status\n");
+    rc = libssh2_channel_read(channel,mem,1);
+    while (rc == LIBSSH2_ERROR_EAGAIN)
+      rc = libssh2_channel_read(channel,mem,1);
+
+    if (rc < 0)
+        fprintf(stderr, "ERROR %d\n", rc);
+    else if (mem[0] != 0) {
+        rc = libssh2_channel_read(channel, mem, 1024);
+        if (rc > 0){
+            mem[rc - 1] = 0;
+            fprintf(stderr,"Transfer status: %s\n",mem);
+        }
+    }
+    else
+        fprintf(stderr,"Transfer status: Complete\n");
 
     fprintf(stderr, "Sending EOF\n");
     libssh2_channel_send_eof(channel);
-- 
1.7.1

