summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndreas Schneider <mail@cynapses.org>2009-04-02 11:53:24 +0000
committerAndreas Schneider <mail@cynapses.org>2009-04-02 11:53:24 +0000
commitb6fbe97f24f8f8cffdb467f90a2c42d0f36cedfb (patch)
tree5c46f2e8643330b17a573fd4f0623f32c659910a
parentd86ac9e04bc5511f7c45406c6cf6e48d43de3626 (diff)
downloadlibssh-b6fbe97f24f8f8cffdb467f90a2c42d0f36cedfb.tar.gz
libssh-b6fbe97f24f8f8cffdb467f90a2c42d0f36cedfb.tar.xz
libssh-b6fbe97f24f8f8cffdb467f90a2c42d0f36cedfb.zip
Improve ssh_options_set_fd().
git-svn-id: svn+ssh://svn.berlios.de/svnroot/repos/libssh/trunk@352 7dcaeef0-15fb-0310-b436-a5af3365683c
-rw-r--r--include/libssh/libssh.h2
-rw-r--r--libssh/options.c28
2 files changed, 20 insertions, 10 deletions
diff --git a/include/libssh/libssh.h b/include/libssh/libssh.h
index ad81ee96..33c72c94 100644
--- a/include/libssh/libssh.h
+++ b/include/libssh/libssh.h
@@ -312,7 +312,7 @@ int ssh_options_set_username(SSH_OPTIONS *opt, const char *username);
int ssh_options_set_port(SSH_OPTIONS *opt, unsigned int port);
int ssh_options_getopt(SSH_OPTIONS *options, int *argcptr, char **argv);
int ssh_options_set_host(SSH_OPTIONS *opt, const char *host);
-void ssh_options_set_fd(SSH_OPTIONS *opt, socket_t fd);
+int ssh_options_set_fd(SSH_OPTIONS *opt, socket_t fd);
void ssh_options_set_bind(SSH_OPTIONS *opt, const char *bindaddr, int port);
void ssh_options_set_identity(SSH_OPTIONS *opt, const char *identity);
void ssh_options_set_status_callback(SSH_OPTIONS *opt, void (*callback)
diff --git a/libssh/options.c b/libssh/options.c
index af20d886..74a4d319 100644
--- a/libssh/options.c
+++ b/libssh/options.c
@@ -304,16 +304,26 @@ int ssh_options_set_username(SSH_OPTIONS *opt, const char *username) {
return 0;
}
-/** If you wish to open the socket yourself for a reason
- * or another, set the file descriptor.\n
- * don't forget to use ssh_option_set_hostname() as the hostname
- * is used as a key in the known_host mechanism
- * \brief set a file descriptor for connection
- * \param opt options structure
- * \param fd an opened file descriptor to use
+/**
+ * @brief Set a file descriptor for connection.
+ *
+ * If you wish to open the socket yourself for a reason or another, set the
+ * file descriptor. Don't forget to use ssh_option_set_hostname() as the
+ * hostname is used as a key in the known_host mechanism.
+ *
+ * @param opt The options structure to use.
+ *
+ * @param fd An opened file descriptor to use.
+ *
+ * @return 0 on success, < 0 on error.
*/
-void ssh_options_set_fd(SSH_OPTIONS *opt, socket_t fd){
- opt->fd=fd;
+int ssh_options_set_fd(SSH_OPTIONS *opt, socket_t fd) {
+ if (opt == NULL) {
+ return -1;
+ }
+ opt->fd = fd;
+
+ return 0;
}
/** In case your client has multiple IP adresses, select the local address