1
1

Improve ssh_options_set_username().

git-svn-id: svn+ssh://svn.berlios.de/svnroot/repos/libssh/trunk@349 7dcaeef0-15fb-0310-b436-a5af3365683c
Этот коммит содержится в:
Andreas Schneider 2009-04-02 10:18:01 +00:00
родитель ab54736b5d
Коммит 8de3dc44ca
3 изменённых файлов: 30 добавлений и 11 удалений

Просмотреть файл

@ -308,7 +308,7 @@ SSH_OPTIONS *ssh_options_new(void);
SSH_OPTIONS *ssh_options_copy(SSH_OPTIONS *opt);
void ssh_options_free(SSH_OPTIONS *opt);
int ssh_options_set_wanted_algos(SSH_OPTIONS *opt, int algo, const char *list);
void ssh_options_set_username(SSH_OPTIONS *opt, const char *username);
int ssh_options_set_username(SSH_OPTIONS *opt, const char *username);
void 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);

Просмотреть файл

@ -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);
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

Просмотреть файл

@ -420,8 +420,14 @@ int main(int argc, char **argv){
}
opts(argc,argv);
signal(SIGTERM, do_exit);
if(user)
ssh_options_set_username(options,user);
if (user) {
if (ssh_options_set_username(options,user) < 0) {
ssh_options_free(options);
return 1;
}
}
if (ssh_options_set_host(options,host) < 0) {
ssh_options_free(options);
return 1;