diff options
-rw-r--r-- | include/libssh/libssh.h | 4 | ||||
-rw-r--r-- | libssh/options.c | 47 |
2 files changed, 41 insertions, 10 deletions
diff --git a/include/libssh/libssh.h b/include/libssh/libssh.h index 69bb27e..26527e9 100644 --- a/include/libssh/libssh.h +++ b/include/libssh/libssh.h @@ -326,8 +326,8 @@ int ssh_options_allow_ssh2(SSH_OPTIONS *opt, int allow); int ssh_options_set_log_function(SSH_OPTIONS *opt, void (*callback)(const char *message, SSH_SESSION *session, int verbosity)); int ssh_options_set_log_verbosity(SSH_OPTIONS *opt, int verbosity); -void ssh_options_set_dsa_server_key(SSH_OPTIONS *opt, const char *dsakey); -void ssh_options_set_rsa_server_key(SSH_OPTIONS *opt, const char *rsakey); +int ssh_options_set_dsa_server_key(SSH_OPTIONS *opt, const char *dsakey); +int ssh_options_set_rsa_server_key(SSH_OPTIONS *opt, const char *rsakey); int ssh_options_set_auth_callback(SSH_OPTIONS *opt, ssh_auth_callback cb, void *userdata); diff --git a/libssh/options.c b/libssh/options.c index 4bc7225..407150e 100644 --- a/libssh/options.c +++ b/libssh/options.c @@ -443,17 +443,48 @@ int ssh_options_set_identity(SSH_OPTIONS *opt, const char *identity){ return 0; } -/** \warning I don't remember what these functions are supposed - * to set +/** + * @brief Set the path to the dsa ssh host key. + * + * @param opt The options structure to use. + * + * @param dsakey The path to the dsa key to set. + * + * @return 0 on success, < 0 on error. */ -void ssh_options_set_dsa_server_key(SSH_OPTIONS *opt, const char *dsakey){ - opt->dsakey=strdup(dsakey); +int ssh_options_set_dsa_server_key(SSH_OPTIONS *opt, const char *dsakey) { + if (opt == NULL || dsakey == NULL) { + return -1; + } + + opt->dsakey = strdup(dsakey); + if (opt->dsakey == NULL) { + return -1; + } + + return 0; } -/** \warning I don't remember what these functions are supposed - * to set + +/** + * @brief Set the path to the ssh host rsa key. + * + * @param opt The options structure to use. + * + * @param rsakey The path to the rsa key to set. + * + * @return 0 on success, < 0 on error. */ -void ssh_options_set_rsa_server_key(SSH_OPTIONS *opt, const char *rsakey){ - opt->rsakey=strdup(rsakey); +int ssh_options_set_rsa_server_key(SSH_OPTIONS *opt, const char *rsakey) { + if (opt == NULL || rsakey == NULL) { + return -1; + } + + opt->rsakey = strdup(rsakey); + if (opt->rsakey == NULL) { + return -1; + } + + return 0; } /** |