mirror of
https://git.libssh.org/projects/libssh.git
synced 2025-11-27 13:21:11 +03:00
ssh_init()
fixes in client.c and server.c for this git-svn-id: svn+ssh://svn.berlios.de/svnroot/repos/libssh/trunk@778 7dcaeef0-15fb-0310-b436-a5af3365683c
This commit is contained in:
@@ -377,6 +377,7 @@ int ssh_userauth_kbdint_setanswer(SSH_SESSION *session, unsigned int i,
|
|||||||
|
|
||||||
|
|
||||||
/* init.c */
|
/* init.c */
|
||||||
|
int ssh_init(void);
|
||||||
int ssh_finalize(void);
|
int ssh_finalize(void);
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
|
|||||||
@@ -467,15 +467,10 @@ int ssh_connect(SSH_SESSION *session) {
|
|||||||
session->alive = 0;
|
session->alive = 0;
|
||||||
session->client = 1;
|
session->client = 1;
|
||||||
|
|
||||||
if (ssh_crypto_init() < 0) {
|
if (ssh_init() < 0) {
|
||||||
leave_function();
|
leave_function();
|
||||||
return SSH_ERROR;
|
return SSH_ERROR;
|
||||||
}
|
}
|
||||||
if (ssh_socket_init() < 0) {
|
|
||||||
leave_function();
|
|
||||||
return SSH_ERROR;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (options->fd == -1 && options->host == NULL) {
|
if (options->fd == -1 && options->host == NULL) {
|
||||||
ssh_set_error(session, SSH_FATAL, "Hostname required");
|
ssh_set_error(session, SSH_FATAL, "Hostname required");
|
||||||
leave_function();
|
leave_function();
|
||||||
|
|||||||
@@ -31,12 +31,29 @@
|
|||||||
* @{
|
* @{
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief initialize global cryptographic data structures.
|
||||||
|
*
|
||||||
|
* This function should only be called once, at the begining of the program, in the main thread. It may be omitted if your program is not multithreaded.
|
||||||
|
*
|
||||||
|
* @returns 0
|
||||||
|
*/
|
||||||
|
int ssh_init(void) {
|
||||||
|
if(ssh_crypto_init())
|
||||||
|
return -1;
|
||||||
|
if(ssh_socket_init())
|
||||||
|
return -1;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Finalize and cleanup all libssh and cryptographic data structures.
|
* @brief Finalize and cleanup all libssh and cryptographic data structures.
|
||||||
*
|
*
|
||||||
* This function should only be called once, at the end of the program!
|
* This function should only be called once, at the end of the program!
|
||||||
*
|
*
|
||||||
* @returns 0
|
* @returns -1 in case of error
|
||||||
|
@returns 0 otherwise
|
||||||
*/
|
*/
|
||||||
int ssh_finalize(void) {
|
int ssh_finalize(void) {
|
||||||
ssh_crypto_finalize();
|
ssh_crypto_finalize();
|
||||||
|
|||||||
@@ -135,7 +135,7 @@ int ssh_bind_listen(SSH_BIND *ssh_bind) {
|
|||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ssh_socket_init() < 0) {
|
if (ssh_init() < 0) {
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -479,10 +479,6 @@ int ssh_accept(SSH_SESSION *session) {
|
|||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ssh_crypto_init() < 0) {
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
|
|
||||||
session->alive = 1;
|
session->alive = 1;
|
||||||
|
|
||||||
session->clientbanner = ssh_get_banner(session);
|
session->clientbanner = ssh_get_banner(session);
|
||||||
|
|||||||
Reference in New Issue
Block a user