diff options
author | Andreas Schneider <mail@cynapses.org> | 2009-04-02 12:14:27 +0000 |
---|---|---|
committer | Andreas Schneider <mail@cynapses.org> | 2009-04-02 12:14:27 +0000 |
commit | 3f4c1976fd19bf3cd47502b422c691b6d4b1ed12 (patch) | |
tree | bbd446293c931d4b2e66f41812328b604f1db1c7 | |
parent | a459a8b4dbc9b391b6080fcdc0a38ca32a3f6a4c (diff) | |
download | libssh-3f4c1976fd19bf3cd47502b422c691b6d4b1ed12.tar.gz libssh-3f4c1976fd19bf3cd47502b422c691b6d4b1ed12.tar.xz libssh-3f4c1976fd19bf3cd47502b422c691b6d4b1ed12.zip |
Improve ssh_options_set_banner().
git-svn-id: svn+ssh://svn.berlios.de/svnroot/repos/libssh/trunk@358 7dcaeef0-15fb-0310-b436-a5af3365683c
-rw-r--r-- | include/libssh/libssh.h | 2 | ||||
-rw-r--r-- | libssh/options.c | 27 |
2 files changed, 21 insertions, 8 deletions
diff --git a/include/libssh/libssh.h b/include/libssh/libssh.h index f1152ec..489dfd5 100644 --- a/include/libssh/libssh.h +++ b/include/libssh/libssh.h @@ -320,11 +320,11 @@ void ssh_options_set_timeout(SSH_OPTIONS *opt, long seconds, long usec); int ssh_options_set_ssh_dir(SSH_OPTIONS *opt, const char *dir); int ssh_options_set_known_hosts_file(SSH_OPTIONS *opt, const char *dir); int ssh_options_set_identity(SSH_OPTIONS *opt, const char *identity); +int ssh_options_set_banner(SSH_OPTIONS *opt, const char *banner); void ssh_options_allow_ssh1(SSH_OPTIONS *opt, int allow); void ssh_options_allow_ssh2(SSH_OPTIONS *opt, int allow); 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); -void ssh_options_set_banner(SSH_OPTIONS *opt, const char *banner); void ssh_options_set_log_function(SSH_OPTIONS *opt, void (*callback)(const char *message, SSH_SESSION *session, int verbosity )); void ssh_options_set_log_verbosity(SSH_OPTIONS *opt, int verbosity); diff --git a/libssh/options.c b/libssh/options.c index 6f8e907..2696f6e 100644 --- a/libssh/options.c +++ b/libssh/options.c @@ -456,14 +456,27 @@ void ssh_options_set_rsa_server_key(SSH_OPTIONS *opt, const char *rsakey){ opt->rsakey=strdup(rsakey); } -/** \brief set the server banner sent to clients - * \param opt options structure - * \param banner a text banner to be shown +/** + * @brief Set the server banner sent to clients. + * + * @param opt The options structure to use. + * + * @param banner A text banner to be shown. + * + * @return 0 on success, < 0 on error. */ -void ssh_options_set_banner(SSH_OPTIONS *opt, const char *banner){ - if(opt->banner) - free(opt->banner); - opt->banner=strdup(banner); +int ssh_options_set_banner(SSH_OPTIONS *opt, const char *banner) { + if (opt == NULL || banner == NULL) { + return -1; + } + + SAFE_FREE(opt->banner); + opt->banner = strdup(banner); + if (opt->banner == NULL) { + return -1; + } + + return 0; } /** the methods are:\n |