1
1

Use the new options function in deprecated functions.

Этот коммит содержится в:
Andreas Schneider 2009-09-22 12:54:27 +02:00
родитель f6d2a66de2
Коммит 39729bd3de

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

@ -716,14 +716,7 @@ int ssh_options_set_host(SSH_OPTIONS *opt, const char *hostname){
* @return 0 on success, < 0 on error.
*/
int ssh_options_set_port(SSH_OPTIONS *opt, unsigned int port) {
if (opt == NULL) {
return -1;
}
opt->port = port & 0xffff;
opt->bindport = port & 0xffff;
return 0;
return ssh_options_set(opt, SSH_OPTIONS_PORT, &port);
}
/**
@ -738,10 +731,6 @@ int ssh_options_set_port(SSH_OPTIONS *opt, unsigned int port) {
* @bug this should not be set at options time
*/
int ssh_options_set_username(SSH_OPTIONS *opt, const char *username) {
if (opt == NULL) {
return -1;
}
return ssh_options_set(opt, SSH_OPTIONS_USER, username);
}
@ -759,12 +748,7 @@ int ssh_options_set_username(SSH_OPTIONS *opt, const char *username) {
* @return 0 on success, < 0 on error.
*/
int ssh_options_set_fd(SSH_OPTIONS *opt, socket_t fd) {
if (opt == NULL) {
return -1;
}
opt->fd = fd;
return 0;
return ssh_options_set(opt, SSH_OPTIONS_FD, &fd);
}
/**
@ -783,14 +767,15 @@ int ssh_options_set_fd(SSH_OPTIONS *opt, socket_t fd) {
* @return 0 on success, < 0 on error.
*/
int ssh_options_set_bind(SSH_OPTIONS *opt, const char *bindaddr, int port) {
if (opt == NULL || bindaddr == NULL) {
int rc;
rc = ssh_options_set(opt, SSH_OPTIONS_SERVER_BINDADDR, bindaddr);
if (rc < 0) {
return -1;
}
rc = ssh_options_set(opt, SSH_OPTIONS_SERVER_BINDPORT, &port);
ssh_options_set(opt, SSH_OPTIONS_SERVER_BINDADDR, bindaddr);
ssh_options_set(opt, SSH_OPTIONS_SERVER_BINDPORT, &port);
return 0;
return rc;
}
/**
@ -809,20 +794,7 @@ int ssh_options_set_bind(SSH_OPTIONS *opt, const char *bindaddr, int port) {
* @see ssh_options_set_user_home_dir()
*/
int ssh_options_set_ssh_dir(SSH_OPTIONS *opt, const char *dir) {
char buffer[1024] = {0};
if (opt == NULL || dir == NULL) {
return -1;
}
snprintf(buffer, 1024, dir, ssh_get_user_home_dir());
SAFE_FREE(opt->ssh_dir);
opt->ssh_dir = strdup(buffer);
if (opt->ssh_dir == NULL) {
return -1;
}
return 0;
return ssh_options_set(opt, SSH_OPTIONS_SSH_DIR, dir);
}
/**
@ -840,20 +812,7 @@ int ssh_options_set_ssh_dir(SSH_OPTIONS *opt, const char *dir) {
* @see ssh_options_set_user_home_dir()
*/
int ssh_options_set_known_hosts_file(SSH_OPTIONS *opt, const char *dir){
char buffer[1024] = {0};
if (opt == NULL || dir == NULL) {
return -1;
}
snprintf(buffer, 1024, dir, ssh_get_user_home_dir());
SAFE_FREE(opt->known_hosts_file);
opt->known_hosts_file = strdup(buffer);
if (opt->known_hosts_file == NULL) {
return -1;
}
return 0;
return ssh_options_set(opt, SSH_OPTIONS_KNOWNHOSTS, dir);
}
/**
@ -871,20 +830,7 @@ int ssh_options_set_known_hosts_file(SSH_OPTIONS *opt, const char *dir){
* @see ssh_options_set_user_home_dir()
*/
int ssh_options_set_identity(SSH_OPTIONS *opt, const char *identity){
char buffer[1024] = {0};
if (opt == NULL || identity == NULL) {
return -1;
}
snprintf(buffer, 1024, identity, ssh_get_user_home_dir());
SAFE_FREE(opt->identity);
opt->identity = strdup(buffer);
if (opt->identity == NULL) {
return -1;
}
return 0;
return ssh_options_set(opt, SSH_OPTIONS_IDENTITY, identity);
}
/**
@ -897,16 +843,7 @@ int ssh_options_set_identity(SSH_OPTIONS *opt, const char *identity){
* @return 0 on success, < 0 on error.
*/
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;
return ssh_options_set(opt, SSH_OPTIONS_SERVER_DSAKEY, dsakey);
}
/**
@ -919,16 +856,7 @@ int ssh_options_set_dsa_server_key(SSH_OPTIONS *opt, const char *dsakey) {
* @return 0 on success, < 0 on error.
*/
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;
return ssh_options_set(opt, SSH_OPTIONS_SERVER_RSAKEY, rsakey);
}
/**
@ -941,17 +869,7 @@ int ssh_options_set_rsa_server_key(SSH_OPTIONS *opt, const char *rsakey) {
* @return 0 on success, < 0 on error.
*/
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;
return ssh_options_set(opt, SSH_OPTIONS_SERVER_BANNER, banner);
}
/**
@ -1006,71 +924,15 @@ int ssh_options_set_wanted_algos(SSH_OPTIONS *opt, int algo, const char *list) {
/* this function must be called when no specific username has been asked. it has to guess it */
int ssh_options_default_username(SSH_OPTIONS *opt) {
char *user = NULL;
if (opt->username) {
return 0;
}
#ifndef _WIN32
user = get_username_from_uid(opt,getuid());
if (user) {
opt->username = user;
return 0;
}
#else
{
DWORD Size = 0;
GetUserName(NULL, &Size); //Get Size
user = malloc(Size);
if (user == NULL) {
return -1;
}
if (GetUserName(user, &Size)) {
opt->username=user;
return 0;
} else {
SAFE_FREE(user);
}
}
#endif
return -1;
return ssh_options_set(opt, SSH_OPTIONS_USER, NULL);
}
int ssh_options_default_ssh_dir(SSH_OPTIONS *opt) {
char buffer[256] = {0};
if (opt->ssh_dir) {
return 0;
}
snprintf(buffer, 256, "%s/.ssh/", ssh_get_user_home_dir());
opt->ssh_dir = strdup(buffer);
if (opt->ssh_dir == NULL) {
return -1;
}
return 0;
return ssh_options_set(opt, SSH_OPTIONS_SSH_DIR, NULL);
}
int ssh_options_default_known_hosts_file(SSH_OPTIONS *opt) {
char buffer[1024] = {0};
if (opt->known_hosts_file) {
return 0;
}
if (ssh_options_default_ssh_dir(opt) < 0) {
return -1;
}
snprintf(buffer, 1024, "%s/known_hosts", opt->ssh_dir);
opt->known_hosts_file = strdup(buffer);
if (opt->known_hosts_file == NULL) {
return -1;
}
return 0;
return ssh_options_set(opt, SSH_OPTIONS_KNOWNHOSTS, NULL);
}
/**
@ -1118,14 +980,11 @@ int ssh_options_set_status_callback(SSH_OPTIONS *opt,
* complete exchange.
*/
int ssh_options_set_timeout(SSH_OPTIONS *opt, long seconds, long usec) {
if (opt == NULL) {
if (ssh_options_set(opt, SSH_OPTIONS_TIMEOUT, &seconds) < 0) {
return -1;
}
opt->timeout = seconds;
opt->timeout_usec = usec;
return 0;
return ssh_options_set(opt, SSH_OPTIONS_TIMEOUT_USEC, &usec);
}
/**
@ -1140,17 +999,7 @@ int ssh_options_set_timeout(SSH_OPTIONS *opt, long seconds, long usec) {
* @return 0 on success, < 0 on error.
*/
int ssh_options_allow_ssh1(SSH_OPTIONS *opt, int allow) {
if (opt == NULL) {
return -1;
}
if (allow) {
opt->ssh1allowed = 1;
} else {
opt->ssh1allowed = 0;
}
return 0;
return ssh_options_set(opt, SSH_OPTIONS_SSH1, &allow);
}
/**
@ -1165,17 +1014,7 @@ int ssh_options_allow_ssh1(SSH_OPTIONS *opt, int allow) {
* @return 0 on success, < 0 on error.
*/
int ssh_options_allow_ssh2(SSH_OPTIONS *opt, int allow) {
if (opt == NULL) {
return -1;
}
if (allow) {
opt->ssh2allowed = 1;
} else {
opt->ssh2allowed = 0;
}
return 0;
return ssh_options_set(opt, SSH_OPTIONS_SSH2, &allow);
}
/**
@ -1219,13 +1058,7 @@ int ssh_options_set_log_function(SSH_OPTIONS *opt, ssh_log_callback cb,
* @return 0 on success, < 0 on error.
*/
int ssh_options_set_log_verbosity(SSH_OPTIONS *opt, int verbosity) {
if (opt == NULL) {
return -1;
}
opt->log_verbosity = verbosity;
return 0;
return ssh_options_set(opt, SSH_OPTIONS_LOG_VERBOSITY, &verbosity);
}
/**
* @brief Parse command line arguments.
@ -1253,10 +1086,10 @@ int ssh_options_getopt(SSH_OPTIONS *options, int *argcptr, char **argv) {
char *cipher = NULL;
char *localaddr = NULL;
char *identity = NULL;
char *port = NULL;
char **save = NULL;
int i = 0;
int argc = *argcptr;
int port = 22;
int debuglevel = 0;
int usersa = 0;
int usedss = 0;
@ -1288,7 +1121,7 @@ int ssh_options_getopt(SSH_OPTIONS *options, int *argcptr, char **argv) {
user = optarg;
break;
case 'p':
port = atoi(optarg) & 0xffff;
port = optarg;
break;
case 'v':
debuglevel++;
@ -1345,7 +1178,7 @@ int ssh_options_getopt(SSH_OPTIONS *options, int *argcptr, char **argv) {
cont = 0;
}
ssh_options_set_log_verbosity(options, debuglevel);
ssh_options_set(options, SSH_OPTIONS_LOG_VERBOSITY, &debuglevel);
optind = saveoptind;
@ -1374,47 +1207,47 @@ int ssh_options_getopt(SSH_OPTIONS *options, int *argcptr, char **argv) {
}
if (cont && cipher) {
if (ssh_options_set_wanted_algos(options, SSH_CRYPT_C_S, cipher) < 0) {
if (ssh_options_set(options, SSH_OPTIONS_CIPHERS_C_S, cipher) < 0) {
cont = 0;
}
if (cont && ssh_options_set_wanted_algos(options, SSH_CRYPT_S_C, cipher) < 0) {
if (cont && ssh_options_set(options, SSH_OPTIONS_CIPHERS_S_C, cipher) < 0) {
cont = 0;
}
}
if (cont && usersa) {
if (ssh_options_set_wanted_algos(options, SSH_HOSTKEYS, "ssh-rsa") < 0) {
if (ssh_options_set(options, SSH_OPTIONS_SERVER_HOSTKEY, "ssh-rsa") < 0) {
cont = 0;
}
}
if (cont && usedss) {
if (ssh_options_set_wanted_algos(options, SSH_HOSTKEYS, "ssh-dss") < 0) {
if (ssh_options_set(options, SSH_OPTIONS_SERVER_HOSTKEY, "ssh-dss") < 0) {
cont = 0;
}
}
if (cont && user) {
if (ssh_options_set_username(options, user) < 0) {
if (ssh_options_set(options, SSH_OPTIONS_USER, user) < 0) {
cont = 0;
}
}
if (cont && identity) {
if (ssh_options_set_identity(options, identity) < 0) {
if (ssh_options_set(options, SSH_OPTIONS_IDENTITY, identity) < 0) {
cont = 0;
}
}
if (cont && localaddr) {
if (ssh_options_set_bind(options, localaddr, 0) < 0) {
if (ssh_options_set(options, SSH_OPTIONS_SERVER_BINDADDR, localaddr) < 0) {
cont = 0;
}
}
ssh_options_set_port(options, port);
ssh_options_allow_ssh1(options, ssh1);
ssh_options_allow_ssh2(options, ssh2);
ssh_options_set(options, SSH_OPTIONS_PORT_STR, port);
ssh_options_set(options, SSH_OPTIONS_SSH1, &ssh1);
ssh_options_set(options, SSH_OPTIONS_SSH2, &ssh2);
if (!cont) {
return -1;