1
0
mirror of https://git.libssh.org/projects/libssh.git synced 2025-12-02 01:17:52 +03:00

get rid of the option structure

This commit is contained in:
Aris Adamantiadis
2009-10-09 22:24:23 +02:00
parent 43e0d73b63
commit 98ff6fbbce
4 changed files with 30 additions and 45 deletions

View File

@@ -114,14 +114,14 @@ typedef struct ssh_agent_struct AGENT;
#endif #endif
typedef struct ssh_message_struct SSH_MESSAGE; typedef struct ssh_message_struct SSH_MESSAGE;
typedef struct ssh_session_struct SSH_OPTIONS; //typedef struct ssh_session_struct SSH_OPTIONS;
typedef struct ssh_session_struct SSH_SESSION; typedef struct ssh_session_struct SSH_SESSION;
typedef struct ssh_agent_struct* ssh_agent; typedef struct ssh_agent_struct* ssh_agent;
typedef struct ssh_buffer_struct* ssh_buffer; typedef struct ssh_buffer_struct* ssh_buffer;
typedef struct ssh_channel_struct* ssh_channel; typedef struct ssh_channel_struct* ssh_channel;
typedef struct ssh_message_struct *ssh_message; typedef struct ssh_message_struct *ssh_message;
typedef struct ssh_session_struct* ssh_options; //typedef struct ssh_session_struct* ssh_options;
typedef struct ssh_private_key_struct* ssh_private_key; typedef struct ssh_private_key_struct* ssh_private_key;
typedef struct ssh_public_key_struct* ssh_public_key; typedef struct ssh_public_key_struct* ssh_public_key;
typedef struct ssh_scp_struct* ssh_scp; typedef struct ssh_scp_struct* ssh_scp;
@@ -384,8 +384,8 @@ LIBSSH_API int ssh_mkdir (const char *pathname, mode_t mode);
LIBSSH_API ssh_session ssh_new(void); LIBSSH_API ssh_session ssh_new(void);
LIBSSH_API int ssh_options_copy(ssh_session src, ssh_session *dest); LIBSSH_API int ssh_options_copy(ssh_session src, ssh_session *dest);
LIBSSH_API int ssh_options_getopt(ssh_options options, int *argcptr, char **argv); LIBSSH_API int ssh_options_getopt(ssh_session session, int *argcptr, char **argv);
LIBSSH_API int ssh_options_parse_config(ssh_options opt, const char *filename); LIBSSH_API int ssh_options_parse_config(ssh_session session, const char *filename);
LIBSSH_API int ssh_options_set(ssh_session session, enum ssh_options_e type, LIBSSH_API int ssh_options_set(ssh_session session, enum ssh_options_e type,
const void *value); const void *value);
@@ -413,7 +413,6 @@ LIBSSH_API void ssh_set_blocking(ssh_session session, int blocking);
LIBSSH_API void ssh_set_fd_except(ssh_session session); LIBSSH_API void ssh_set_fd_except(ssh_session session);
LIBSSH_API void ssh_set_fd_toread(ssh_session session); LIBSSH_API void ssh_set_fd_toread(ssh_session session);
LIBSSH_API void ssh_set_fd_towrite(ssh_session session); LIBSSH_API void ssh_set_fd_towrite(ssh_session session);
LIBSSH_API void ssh_set_options(ssh_session session, ssh_options options);
LIBSSH_API void ssh_silent_disconnect(ssh_session session); LIBSSH_API void ssh_silent_disconnect(ssh_session session);
#ifndef _WIN32 #ifndef _WIN32
LIBSSH_API int ssh_userauth_agent_pubkey(ssh_session session, const char *username, LIBSSH_API int ssh_userauth_agent_pubkey(ssh_session session, const char *username,

View File

@@ -119,7 +119,7 @@ int ssh_send_banner(ssh_session session, int is_server);
char *ssh_get_banner(ssh_session session); char *ssh_get_banner(ssh_session session);
/* config.c */ /* config.c */
int ssh_config_parse_file(ssh_options opt, const char *filename); int ssh_config_parse_file(ssh_session session, const char *filename);
/* errors.c */ /* errors.c */
void ssh_set_error(void *error, int code, const char *descr, ...) PRINTF_ATTRIBUTE(3, 4); void ssh_set_error(void *error, int code, const char *descr, ...) PRINTF_ATTRIBUTE(3, 4);

View File

@@ -710,7 +710,7 @@ int ssh_bind_options_set(ssh_bind sshbind, enum ssh_bind_options_e type,
* myssh -l user localhost\n * myssh -l user localhost\n
* The command wont set the hostname value of options to localhost. * The command wont set the hostname value of options to localhost.
* *
* @param options An empty option structure pointer. * @param session The session to configure.
* *
* @param argcptr The pointer to the argument count. * @param argcptr The pointer to the argument count.
* *
@@ -720,7 +720,7 @@ int ssh_bind_options_set(ssh_bind sshbind, enum ssh_bind_options_e type,
* *
* @see ssh_session_new() * @see ssh_session_new()
*/ */
int ssh_options_getopt(ssh_options options, int *argcptr, char **argv) { int ssh_options_getopt(ssh_session session, int *argcptr, char **argv) {
char *user = NULL; char *user = NULL;
char *cipher = NULL; char *cipher = NULL;
char *localaddr = NULL; char *localaddr = NULL;
@@ -751,7 +751,7 @@ int ssh_options_getopt(ssh_options options, int *argcptr, char **argv) {
save = malloc(argc * sizeof(char *)); save = malloc(argc * sizeof(char *));
if (save == NULL) { if (save == NULL) {
ssh_set_error_oom(options); ssh_set_error_oom(session);
return -1; return -1;
} }
@@ -803,7 +803,7 @@ int ssh_options_getopt(ssh_options options, int *argcptr, char **argv) {
save[current] = strdup(opt); save[current] = strdup(opt);
if (save[current] == NULL) { if (save[current] == NULL) {
SAFE_FREE(save); SAFE_FREE(save);
ssh_set_error_oom(options); ssh_set_error_oom(session);
return -1; return -1;
} }
current++; current++;
@@ -819,11 +819,11 @@ int ssh_options_getopt(ssh_options options, int *argcptr, char **argv) {
} }
if (usersa && usedss) { if (usersa && usedss) {
ssh_set_error(options, SSH_FATAL, "Either RSA or DSS must be chosen"); ssh_set_error(session, SSH_FATAL, "Either RSA or DSS must be chosen");
cont = 0; cont = 0;
} }
ssh_options_set(options, SSH_OPTIONS_LOG_VERBOSITY, &debuglevel); ssh_options_set(session, SSH_OPTIONS_LOG_VERBOSITY, &debuglevel);
optind = saveoptind; optind = saveoptind;
@@ -843,45 +843,45 @@ int ssh_options_getopt(ssh_options options, int *argcptr, char **argv) {
/* set a new option struct */ /* set a new option struct */
if (compress) { if (compress) {
if (ssh_options_set(options, SSH_OPTIONS_COMPRESSION_C_S, "zlib") < 0) { if (ssh_options_set(session, SSH_OPTIONS_COMPRESSION_C_S, "zlib") < 0) {
cont = 0; cont = 0;
} }
if (ssh_options_set(options, SSH_OPTIONS_COMPRESSION_S_C, "zlib") < 0) { if (ssh_options_set(session, SSH_OPTIONS_COMPRESSION_S_C, "zlib") < 0) {
cont = 0; cont = 0;
} }
} }
if (cont && cipher) { if (cont && cipher) {
if (ssh_options_set(options, SSH_OPTIONS_CIPHERS_C_S, cipher) < 0) { if (ssh_options_set(session, SSH_OPTIONS_CIPHERS_C_S, cipher) < 0) {
cont = 0; cont = 0;
} }
if (cont && ssh_options_set(options, SSH_OPTIONS_CIPHERS_S_C, cipher) < 0) { if (cont && ssh_options_set(session, SSH_OPTIONS_CIPHERS_S_C, cipher) < 0) {
cont = 0; cont = 0;
} }
} }
if (cont && user) { if (cont && user) {
if (ssh_options_set(options, SSH_OPTIONS_USER, user) < 0) { if (ssh_options_set(session, SSH_OPTIONS_USER, user) < 0) {
cont = 0; cont = 0;
} }
} }
if (cont && identity) { if (cont && identity) {
if (ssh_options_set(options, SSH_OPTIONS_IDENTITY, identity) < 0) { if (ssh_options_set(session, SSH_OPTIONS_IDENTITY, identity) < 0) {
cont = 0; cont = 0;
} }
} }
ssh_options_set(options, SSH_OPTIONS_PORT_STR, port); ssh_options_set(session, SSH_OPTIONS_PORT_STR, port);
ssh_options_set(options, SSH_OPTIONS_SSH1, &ssh1); ssh_options_set(session, SSH_OPTIONS_SSH1, &ssh1);
ssh_options_set(options, SSH_OPTIONS_SSH2, &ssh2); ssh_options_set(session, SSH_OPTIONS_SSH2, &ssh2);
if (!cont) { if (!cont) {
return -1; return SSH_ERROR;
} }
return 0; return SSH_OK;
#endif #endif
} }
@@ -892,7 +892,7 @@ int ssh_options_getopt(ssh_options options, int *argcptr, char **argv) {
* are already set. It requires that the host name is already set with * are already set. It requires that the host name is already set with
* ssh_options_set_host(). * ssh_options_set_host().
* *
* @param opt The options structure to use. * @param session SSH session handle
* *
* @param filename The options file to use, if NULL the default * @param filename The options file to use, if NULL the default
* ~/.ssh/config will be used. * ~/.ssh/config will be used.
@@ -901,28 +901,28 @@ int ssh_options_getopt(ssh_options options, int *argcptr, char **argv) {
* *
* @see ssh_options_set_host() * @see ssh_options_set_host()
*/ */
int ssh_options_parse_config(ssh_options opt, const char *filename) { int ssh_options_parse_config(ssh_session session, const char *filename) {
char *expanded_filename; char *expanded_filename;
int r; int r;
if (opt == NULL) { if (session == NULL) {
return -1; return -1;
} }
if (opt->host == NULL) { if (session->host == NULL) {
ssh_set_error_invalid(opt, __FUNCTION__); ssh_set_error_invalid(session, __FUNCTION__);
return -1; return -1;
} }
/* set default filename */ /* set default filename */
if (filename == NULL) { if (filename == NULL) {
expanded_filename = dir_expand_dup(opt, "SSH_DIR/config", 1); expanded_filename = dir_expand_dup(session, "SSH_DIR/config", 1);
} else { } else {
expanded_filename = dir_expand_dup(opt, filename, 1); expanded_filename = dir_expand_dup(session, filename, 1);
} }
if (expanded_filename == NULL) if (expanded_filename == NULL)
return -1; return -1;
r = ssh_config_parse_file(opt, expanded_filename); r = ssh_config_parse_file(session, expanded_filename);
free(expanded_filename); free(expanded_filename);
return r; return r;
} }

View File

@@ -185,20 +185,6 @@ void ssh_silent_disconnect(ssh_session session) {
/* FIXME: leave_function(); ??? */ /* FIXME: leave_function(); ??? */
} }
/** \brief set the options for the current session
* \param session ssh session
* \param options options structure
* \see ssh_new()
* \see ssh_options_new()
*/
void ssh_set_options(ssh_session session, ssh_options options) {
if (session == NULL || options == NULL) {
return;
}
return;
}
/** \brief set the session in blocking/nonblocking mode /** \brief set the session in blocking/nonblocking mode
* \param session ssh session * \param session ssh session
* \param blocking zero for nonblocking mode * \param blocking zero for nonblocking mode