Core/externals: Update ACE to 5.8.1 (should fix issues with disconnects happening on servers compiled under VS2010)

Update issue 3411
Status: NeedsFeedback

--HG--
branch : trunk
This commit is contained in:
click
2010-08-15 00:28:14 +02:00
parent f3b93df6b7
commit e3b8a5923d
85 changed files with 5264 additions and 589 deletions
+23 -6
View File
@@ -28,7 +28,7 @@
ACE_RCSID (ACE_SSL,
SSL_Context,
"$Id: SSL_Context.cpp 82574 2008-08-08 19:35:06Z parsons $")
"$Id: SSL_Context.cpp 85202 2009-04-28 18:52:57Z johnnyw $")
namespace
@@ -112,6 +112,7 @@ ACE_SSL_Context::ACE_SSL_Context (void)
: context_ (0),
mode_ (-1),
default_verify_mode_ (SSL_VERIFY_NONE),
default_verify_callback_ (0),
have_ca_ (0)
{
ACE_SSL_Context::ssl_library_init ();
@@ -131,7 +132,7 @@ ACE_SSL_Context::~ACE_SSL_Context (void)
ACE_SSL_Context *
ACE_SSL_Context::instance (void)
{
return ACE_Singleton<ACE_SSL_Context, ACE_SYNCH_MUTEX>::instance ();
return ACE_Unmanaged_Singleton<ACE_SSL_Context, ACE_SYNCH_MUTEX>::instance ();
}
void
@@ -181,15 +182,15 @@ ACE_SSL_Context::ssl_library_init (void)
(void) this->egd_file (egd_socket_file);
#endif /* OPENSSL_VERSION_NUMBER */
const char *rand_file =
ACE_OS::getenv (ACE_SSL_RAND_FILE_ENV);
const char *rand_file = ACE_OS::getenv (ACE_SSL_RAND_FILE_ENV);
if (rand_file != 0)
(void) this->seed_file (rand_file);
{
(void) this->seed_file (rand_file);
}
// Initialize the mutexes that will be used by the SSL and
// crypto library.
}
++ssl_library_init_count;
@@ -205,6 +206,9 @@ ACE_SSL_Context::ssl_library_fini (void)
--ssl_library_init_count;
if (ssl_library_init_count == 0)
{
// Explicitly close the singleton
ACE_Unmanaged_Singleton<ACE_SSL_Context, ACE_SYNCH_MUTEX>::close();
::ERR_free_strings ();
::EVP_cleanup ();
@@ -232,7 +236,11 @@ ACE_SSL_Context::set_mode (int mode)
if (this->context_ != 0)
return -1;
#if OPENSSL_VERSION_NUMBER >= 0x10000002
const SSL_METHOD *method = 0;
#else
SSL_METHOD *method = 0;
#endif
switch (mode)
{
@@ -305,16 +313,20 @@ ACE_SSL_Context::load_trusted_ca (const char* ca_file,
{
// Use the default environment settings.
ca_file = ACE_OS::getenv (ACE_SSL_CERT_FILE_ENV);
#ifdef ACE_DEFAULT_SSL_CERT_FILE
if (ca_file == 0)
ca_file = ACE_DEFAULT_SSL_CERT_FILE;
#endif
}
if (ca_dir == 0 && use_env_defaults)
{
// Use the default environment settings.
ca_dir = ACE_OS::getenv (ACE_SSL_CERT_DIR_ENV);
#ifdef ACE_DEFAULT_SSL_CERT_DIR
if (ca_dir == 0)
ca_dir = ACE_DEFAULT_SSL_CERT_DIR;
#endif
}
// NOTE: SSL_CTX_load_verify_locations() returns 0 on error.
@@ -566,7 +578,12 @@ ACE_SSL_Context::report_error (unsigned long error_code)
char error_string[256];
// OpenSSL < 0.9.6a doesn't have ERR_error_string_n() function.
#if OPENSSL_VERSION_NUMBER >= 0x0090601fL
(void) ::ERR_error_string_n (error_code, error_string, sizeof error_string);
#else /* OPENSSL_VERSION_NUMBER >= 0x0090601fL */
(void) ::ERR_error_string (error_code, error_string);
#endif /* OPENSSL_VERSION_NUMBER >= 0x0090601fL */
ACE_ERROR ((LM_ERROR,
ACE_TEXT ("ACE_SSL (%P|%t) error code: %u - %C\n"),