From 08bc076a0af55bb9fc6dfc48db2a0efdb35223a3 Mon Sep 17 00:00:00 2001 From: Aris Adamantiadis Date: Mon, 17 May 2010 20:03:44 +0200 Subject: New sample that writes a lot of data on channel --- examples/senddata.c | 54 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 examples/senddata.c (limited to 'examples/senddata.c') 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 + +#include +#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; +} -- cgit