init.c | init.c | |||
---|---|---|---|---|
/* | /* | |||
* init.c - initialization and finalization of the library | * init.c - initialization and finalization of the library | |||
* | * | |||
* This file is part of the SSH Library | * This file is part of the SSH Library | |||
* | * | |||
* Copyright (c) 2003-2006 by Aris Adamantiadis | * Copyright (c) 2003-2009 by Aris Adamantiadis | |||
* | * | |||
* The SSH Library is free software; you can redistribute it and/or modify | * The SSH Library is free software; you can redistribute it and/or modify | |||
* it under the terms of the GNU Lesser General Public License as published by | * it under the terms of the GNU Lesser General Public License as published by | |||
* the Free Software Foundation; either version 2.1 of the License, or (at your | * the Free Software Foundation; either version 2.1 of the License, or (at your | |||
* option) any later version. | * option) any later version. | |||
* | * | |||
* The SSH Library is distributed in the hope that it will be useful, but | * The SSH Library is distributed in the hope that it will be useful, but | |||
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILI TY | * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILI TY | |||
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public | * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public | |||
* License for more details. | * License for more details. | |||
* | * | |||
* You should have received a copy of the GNU Lesser General Public License | * You should have received a copy of the GNU Lesser General Public License | |||
* along with the SSH Library; see the file COPYING. If not, write to | * along with the SSH Library; see the file COPYING. If not, write to | |||
* the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, | * the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, | |||
* MA 02111-1307, USA. | * MA 02111-1307, USA. | |||
*/ | */ | |||
#include "config.h" | ||||
#include "libssh/priv.h" | #include "libssh/priv.h" | |||
#include "libssh/socket.h" | ||||
#include "libssh/dh.h" | ||||
#ifdef _WIN32 | #ifdef _WIN32 | |||
#include <winsock2.h> | #include <winsock2.h> | |||
#endif | #endif | |||
/** | /** | |||
* \addtogroup ssh_session | * \addtogroup ssh_session | |||
* @{ | * @{ | |||
*/ | */ | |||
/** | /** | |||
* @brief initialize global cryptographic data structures. | * @brief initialize global cryptographic data structures. | |||
* | * | |||
* This function should only be called once, at the begining of the program | * This function should only be called once, at the beginning of the progra | |||
, in the main thread. It may be omitted if your program is not multithreade | m, in | |||
d. | * the main thread. It may be omitted if your program is not multithreaded. | |||
* | * | |||
* @returns 0 | * @returns 0 | |||
*/ | */ | |||
int ssh_init(void) { | int ssh_init(void) { | |||
if(ssh_crypto_init()) | if(ssh_crypto_init()) | |||
return -1; | return -1; | |||
if(ssh_socket_init()) | if(ssh_socket_init()) | |||
return -1; | return -1; | |||
if(ssh_regex_init()) | ||||
return -1; | ||||
return 0; | 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 -1 in case of error | * @returns -1 in case of error | |||
@returns 0 otherwise | @returns 0 otherwise | |||
*/ | */ | |||
int ssh_finalize(void) { | int ssh_finalize(void) { | |||
ssh_regex_finalize(); | ||||
ssh_crypto_finalize(); | ssh_crypto_finalize(); | |||
#ifdef HAVE_LIBGCRYPT | #ifdef HAVE_LIBGCRYPT | |||
gcry_control(GCRYCTL_TERM_SECMEM); | gcry_control(GCRYCTL_TERM_SECMEM); | |||
#elif defined HAVE_LIBCRYPTO | #elif defined HAVE_LIBCRYPTO | |||
EVP_cleanup(); | EVP_cleanup(); | |||
#endif | #endif | |||
#ifdef _WIN32 | #ifdef _WIN32 | |||
WSACleanup(); | WSACleanup(); | |||
#endif | #endif | |||
return 0; | return 0; | |||
End of changes. 6 change blocks. | ||||
4 lines changed or deleted | 11 lines changed or added | |||
This html diff was produced by rfcdiff 1.41. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |