From 8de3dc44ca3dc4285d34925be5a7b4fee8e95408 Mon Sep 17 00:00:00 2001 From: Andreas Schneider Date: Thu, 2 Apr 2009 10:18:01 +0000 Subject: Improve ssh_options_set_username(). git-svn-id: svn+ssh://svn.berlios.de/svnroot/repos/libssh/trunk@349 7dcaeef0-15fb-0310-b436-a5af3365683c --- libssh/options.c | 29 +++++++++++++++++++++-------- 1 file changed, 21 insertions(+), 8 deletions(-) (limited to 'libssh') diff --git a/libssh/options.c b/libssh/options.c index e12a2356..2bdc589d 100644 --- a/libssh/options.c +++ b/libssh/options.c @@ -257,15 +257,28 @@ int ssh_options_set_host(SSH_OPTIONS *opt, const char *hostname){ return 0; } -/** \brief set username for authentication - * \bug this should not be set at options time - * \param opt options structure - * \param username user name to authenticate +/** + * @brief Set the username for authentication + * + * @param opt The options structure to use. + * + * @param username The username to authenticate. + * + * @return 0 on success, -1 on error. + * + * @bug this should not be set at options time */ -void ssh_options_set_username(SSH_OPTIONS *opt, const char *username){ - if(opt->username) - free(opt->username); - opt->username=strdup(username); +int ssh_options_set_username(SSH_OPTIONS *opt, const char *username) { + if (opt->username) { + SAFE_FREE(opt->username); + } + + opt->username = strdup(username); + if (opt->username == NULL) { + return -1; + } + + return 0; } /** If you wish to open the socket yourself for a reason -- cgit