summaryrefslogtreecommitdiffstats
path: root/doc/commands.dox
diff options
context:
space:
mode:
authorÉric Bischoff <eric@bureau-cornavin.com>2010-09-07 09:54:42 +0200
committerAndreas Schneider <asn@cynapses.org>2010-09-07 09:54:42 +0200
commit398bc769cec5631bcb561d17b9c6900a5ec36b4a (patch)
treec0a3db7c11ed1f06856a4c34eefe39c56ad3b4b7 /doc/commands.dox
parent49f57a8d0dcf990169e2f591a937672f74ffa4a9 (diff)
downloadlibssh-398bc769cec5631bcb561d17b9c6900a5ec36b4a.tar.gz
libssh-398bc769cec5631bcb561d17b9c6900a5ec36b4a.tar.xz
libssh-398bc769cec5631bcb561d17b9c6900a5ec36b4a.zip
doc: More work on the tutorial.
Diffstat (limited to 'doc/commands.dox')
-rw-r--r--doc/commands.dox94
1 files changed, 0 insertions, 94 deletions
diff --git a/doc/commands.dox b/doc/commands.dox
deleted file mode 100644
index 86cf156b..00000000
--- a/doc/commands.dox
+++ /dev/null
@@ -1,94 +0,0 @@
-/**
-@page commands Chapter 4: Passing remote commands
-@section remote_commands Passing remote commands
-
-Previous chapter has shown how to open a full shell session, with an attached
-terminal or not. If you only need to execute commands on the remote end,
-you don't need all that complexity.
-
-The method described here is suited for executing only one remote command.
-If you need to issue several commands in a row, you should consider using
-a non-interactive remote shell, as explained in previous chapter.
-
-@see shell
-
-
-@subsection exec_remote Executing remote commands
-
-The first steps for executing remote commands are identical to those
-for opening remote shells. You first need a SSH channel, and then
-a SSH session that uses this channel:
-
-@code
-int show_remote_files(ssh_session session)
-{
- ssh_channel channel;
- int rc;
-
- channel = ssh_channel_new(session);
- if (channel == NULL) return SSH_ERROR;
-
- rc = ssh_channel_open_session(channel);
- if (rc != SSH_OK)
- {
- ssh_channel_free(channel);
- return rc;
- }
-@endcode
-
-Once a session is open, you can start the remote command with
-ssh_channel_request_exec():
-
-@code
- rc = ssh_channel_request_exec(channel, "ls -l");
- if (rc != SSH_OK)
- {
- ssh_channel_close(channel);
- ssh_channel_free(channel);
- return rc;
- }
-@endcode
-
-If the remote command displays data, you get them with ssh_channel_read().
-This function returns the number of bytes read. If there is no more
-data to read on the channel, this function returns 0, and you can go to next step.
-If an error has been encountered, it returns a negative value:
-
-@code
- char buffer[256];
- unsigned int nbytes;
-
- nbytes = ssh_channel_read(channel, buffer, sizeof(buffer), 0);
- while (nbytes > 0)
- {
- if (write(1, buffer, nbytes) != nbytes)
- {
- ssh_channel_close(channel);
- ssh_channel_free(channel);
- return SSH_ERROR;
- }
- nbytes = ssh_channel_read(channel, buffer, sizeof(buffer), 0);
- }
-
- if (nbytes < 0)
- {
- ssh_channel_close(channel);
- ssh_channel_free(channel);
- return SSH_ERROR;
- }
-@endcode
-
-Once you read the result of the remote command, you send an
-end-of-file to the channel, close it, and free the memory
-that it used:
-
-@code
- ssh_channel_send_eof(channel);
- ssh_channel_close(channel);
- ssh_channel_free(channel);
-
- return SSH_OK;
-}
-@endcode
-
-*/