Don't log about Libevent/OpenSSL initialization when all's well

OTOH, log the Libevent and OpenSSL versions on the first line when
we're starting Tor.
This commit is contained in:
Nick Mathewson 2012-09-04 12:32:38 -04:00
parent 485b4b7eee
commit e3a130a7eb
7 changed files with 44 additions and 11 deletions

3
changes/quiet_lib_init Normal file
View File

@ -0,0 +1,3 @@
o Minor features:
- Log less at level notice about our OpenSSL and Libevent versions
when everything is going right. Partial fix for 6736.

View File

@ -212,11 +212,11 @@ evaluate_evp_for_aes(int force_val)
e = ENGINE_get_cipher_engine(NID_aes_128_ecb); e = ENGINE_get_cipher_engine(NID_aes_128_ecb);
if (e) { if (e) {
log_notice(LD_CRYPTO, "AES engine \"%s\" found; using EVP_* functions.", log_info(LD_CRYPTO, "AES engine \"%s\" found; using EVP_* functions.",
ENGINE_get_name(e)); ENGINE_get_name(e));
should_use_EVP = 1; should_use_EVP = 1;
} else { } else {
log_notice(LD_CRYPTO, "No AES engine found; using AES_* functions."); log_info(LD_CRYPTO, "No AES engine found; using AES_* functions.");
should_use_EVP = 0; should_use_EVP = 0;
} }
#endif #endif
@ -263,12 +263,12 @@ evaluate_ctr_for_aes(void)
"not using it."); "not using it.");
} else { } else {
/* Counter mode is okay */ /* Counter mode is okay */
log_notice(LD_CRYPTO, "This OpenSSL has a good implementation of counter " log_info(LD_CRYPTO, "This OpenSSL has a good implementation of counter "
"mode; using it."); "mode; using it.");
should_use_openssl_CTR = 1; should_use_openssl_CTR = 1;
} }
#else #else
log_notice(LD_CRYPTO, "This version of OpenSSL has a slow implementation of " log_info(LD_CRYPTO, "This version of OpenSSL has a slow implementation of "
"counter mode; not using it."); "counter mode; not using it.");
#endif #endif
return 0; return 0;

View File

@ -266,7 +266,7 @@ tor_libevent_initialize(tor_libevent_cfg *torcfg)
#if defined(HAVE_EVENT_GET_VERSION) && defined(HAVE_EVENT_GET_METHOD) #if defined(HAVE_EVENT_GET_VERSION) && defined(HAVE_EVENT_GET_METHOD)
/* Making this a NOTICE for now so we can link bugs to a libevent versions /* Making this a NOTICE for now so we can link bugs to a libevent versions
* or methods better. */ * or methods better. */
log(LOG_NOTICE, LD_GENERAL, log(LOG_INFO, LD_GENERAL,
"Initialized libevent version %s using method %s. Good.", "Initialized libevent version %s using method %s. Good.",
event_get_version(), tor_libevent_get_method()); event_get_version(), tor_libevent_get_method());
#else #else

View File

@ -221,6 +221,30 @@ try_load_engine(const char *path, const char *engine)
} }
#endif #endif
static char *crypto_openssl_version_str = NULL;
/* Return a human-readable version of the run-time openssl version number. */
const char *
crypto_openssl_get_version_str(void)
{
if (crypto_openssl_version_str == NULL) {
const char *raw_version = SSLeay_version(SSLEAY_VERSION);
const char *end_of_version = NULL;
/* The output should be something like "OpenSSL 1.0.0b 10 May 2012. Let's
trim that down. */
if (!strcmpstart(raw_version, "OpenSSL ")) {
raw_version += strlen("OpenSSL ");
end_of_version = strchr(raw_version, ' ');
}
if (end_of_version)
crypto_openssl_version_str = tor_strndup(raw_version,
end_of_version-raw_version);
else
crypto_openssl_version_str = tor_strdup(raw_version);
}
return crypto_openssl_version_str;
}
/** Initialize the crypto library. Return 0 on success, -1 on failure. /** Initialize the crypto library. Return 0 on success, -1 on failure.
*/ */
int int
@ -3018,6 +3042,7 @@ crypto_global_cleanup(void)
tor_free(ms); tor_free(ms);
} }
#endif #endif
tor_free(crypto_openssl_version_str);
return 0; return 0;
} }

View File

@ -111,6 +111,7 @@ typedef struct crypto_digest_t crypto_digest_t;
typedef struct crypto_dh_t crypto_dh_t; typedef struct crypto_dh_t crypto_dh_t;
/* global state */ /* global state */
const char * crypto_openssl_get_version_str(void);
int crypto_global_init(int hardwareAccel, int crypto_global_init(int hardwareAccel,
const char *accelName, const char *accelName,
const char *accelPath); const char *accelPath);

View File

@ -478,7 +478,7 @@ tor_tls_init(void)
* a test of intelligence and determination. * a test of intelligence and determination.
*/ */
if (version > OPENSSL_V(0,9,8,'k') && version <= OPENSSL_V(0,9,8,'l')) { if (version > OPENSSL_V(0,9,8,'k') && version <= OPENSSL_V(0,9,8,'l')) {
log_notice(LD_GENERAL, "OpenSSL %s looks like version 0.9.8l, but " log_info(LD_GENERAL, "OpenSSL %s looks like version 0.9.8l, but "
"some vendors have backported renegotiation code from " "some vendors have backported renegotiation code from "
"0.9.8m without updating the version number. " "0.9.8m without updating the version number. "
"I will try SSL3_FLAGS and SSL_OP to enable renegotation.", "I will try SSL3_FLAGS and SSL_OP to enable renegotation.",
@ -486,12 +486,12 @@ tor_tls_init(void)
use_unsafe_renegotiation_flag = 1; use_unsafe_renegotiation_flag = 1;
use_unsafe_renegotiation_op = 1; use_unsafe_renegotiation_op = 1;
} else if (version > OPENSSL_V(0,9,8,'l')) { } else if (version > OPENSSL_V(0,9,8,'l')) {
log_notice(LD_GENERAL, "OpenSSL %s looks like version 0.9.8m or later; " log_info(LD_GENERAL, "OpenSSL %s looks like version 0.9.8m or later; "
"I will try SSL_OP to enable renegotiation", "I will try SSL_OP to enable renegotiation",
SSLeay_version(SSLEAY_VERSION)); SSLeay_version(SSLEAY_VERSION));
use_unsafe_renegotiation_op = 1; use_unsafe_renegotiation_op = 1;
} else if (version <= OPENSSL_V(0,9,8,'k')) { } else if (version <= OPENSSL_V(0,9,8,'k')) {
log_notice(LD_GENERAL, "OpenSSL %s [%lx] looks like it's older than " log_info(LD_GENERAL, "OpenSSL %s [%lx] looks like it's older than "
"0.9.8l, but some vendors have backported 0.9.8l's " "0.9.8l, but some vendors have backported 0.9.8l's "
"renegotiation code to earlier versions, and some have " "renegotiation code to earlier versions, and some have "
"backported the code from 0.9.8m or 0.9.8n. I'll set both " "backported the code from 0.9.8m or 0.9.8n. I'll set both "

View File

@ -2304,12 +2304,16 @@ tor_init(int argc, char *argv[])
{ {
const char *version = get_version(); const char *version = get_version();
log_notice(LD_GENERAL, "Tor v%s %srunning on %s with Libevent %s "
"and OpenSSL %s.", version,
#ifdef USE_BUFFEREVENTS #ifdef USE_BUFFEREVENTS
log_notice(LD_GENERAL, "Tor v%s (with bufferevents) running on %s.", "(with bufferevents) ",
version, get_uname());
#else #else
log_notice(LD_GENERAL, "Tor v%s running on %s.", version, get_uname()); "",
#endif #endif
get_uname(),
tor_libevent_get_version_str(),
crypto_openssl_get_version_str());
log_notice(LD_GENERAL, "Tor can't help you if you use it wrong! " log_notice(LD_GENERAL, "Tor can't help you if you use it wrong! "
"Learn how to be safe at " "Learn how to be safe at "