aboutsummaryrefslogtreecommitdiff
path: root/examples/senddata.c
diff options
context:
space:
mode:
authorAris Adamantiadis <aris@0xbadc0de.be>2010-05-17 20:03:44 +0200
committerAris Adamantiadis <aris@0xbadc0de.be>2010-05-17 20:08:10 +0200
commit08bc076a0af55bb9fc6dfc48db2a0efdb35223a3 (patch)
tree67da4cc95ad2a78902d748e90d8dfb34a3867475 /examples/senddata.c
parent2c014256f7f7490d7b45c7b452b8711b5c8e938f (diff)
downloadlibssh-08bc076a0af55bb9fc6dfc48db2a0efdb35223a3.tar.gz
libssh-08bc076a0af55bb9fc6dfc48db2a0efdb35223a3.tar.xz
libssh-08bc076a0af55bb9fc6dfc48db2a0efdb35223a3.zip
New sample that writes a lot of data on channel
Diffstat (limited to 'examples/senddata.c')
-rw-r--r--examples/senddata.c54
1 files changed, 54 insertions, 0 deletions
diff --git a/examples/senddata.c b/examples/senddata.c
new file mode 100644
index 0000000..9de7638
--- /dev/null
+++ b/examples/senddata.c
@@ -0,0 +1,54 @@
+#include <stdio.h>
+
+#include <libssh/libssh.h>
+#include "examples_common.h"
+
+int main(void) {
+ ssh_session session;
+ ssh_channel channel;
+ char buffer[1024*1024];
+ int rc;
+
+ session = connect_ssh("172.16.104.134", NULL, 0);
+ if (session == NULL) {
+ return 1;
+ }
+
+ channel = ssh_channel_new(session);;
+ if (channel == NULL) {
+ ssh_disconnect(session);
+ return 1;
+ }
+
+ rc = ssh_channel_open_session(channel);
+ if (rc < 0) {
+ ssh_channel_close(channel);
+ ssh_disconnect(session);
+ return 1;
+ }
+
+ rc = ssh_channel_request_exec(channel, "cat > /dev/null");
+ if (rc < 0) {
+ ssh_channel_close(channel);
+ ssh_disconnect(session);
+ return 1;
+ }
+
+
+ while ((rc = ssh_channel_write(channel, buffer, sizeof(buffer))) > 0) {
+ }
+
+ if (rc < 0) {
+ printf("error : %s\n",ssh_get_error(session));
+ ssh_channel_close(channel);
+ ssh_disconnect(session);
+ return 1;
+ }
+
+ ssh_channel_send_eof(channel);
+ ssh_channel_close(channel);
+
+ ssh_disconnect(session);
+
+ return 0;
+}