Index: webrtc/base/openssladapter.cc |
diff --git a/webrtc/base/openssladapter.cc b/webrtc/base/openssladapter.cc |
index d3681861860b5591c5fb85e39b47278bfb0c64b7..0d6a2a19a6119e30ad68d4ea9514e49476ca408b 100644 |
--- a/webrtc/base/openssladapter.cc |
+++ b/webrtc/base/openssladapter.cc |
@@ -41,18 +41,18 @@ |
#if defined(WEBRTC_WIN) |
#define MUTEX_TYPE HANDLE |
- #define MUTEX_SETUP(x) (x) = CreateMutex(NULL, FALSE, NULL) |
- #define MUTEX_CLEANUP(x) CloseHandle(x) |
- #define MUTEX_LOCK(x) WaitForSingleObject((x), INFINITE) |
- #define MUTEX_UNLOCK(x) ReleaseMutex(x) |
- #define THREAD_ID GetCurrentThreadId() |
+#define MUTEX_SETUP(x) (x) = CreateMutex(nullptr, FALSE, nullptr) |
+#define MUTEX_CLEANUP(x) CloseHandle(x) |
+#define MUTEX_LOCK(x) WaitForSingleObject((x), INFINITE) |
+#define MUTEX_UNLOCK(x) ReleaseMutex(x) |
+#define THREAD_ID GetCurrentThreadId() |
#elif defined(WEBRTC_POSIX) |
#define MUTEX_TYPE pthread_mutex_t |
- #define MUTEX_SETUP(x) pthread_mutex_init(&(x), NULL) |
- #define MUTEX_CLEANUP(x) pthread_mutex_destroy(&(x)) |
- #define MUTEX_LOCK(x) pthread_mutex_lock(&(x)) |
- #define MUTEX_UNLOCK(x) pthread_mutex_unlock(&(x)) |
- #define THREAD_ID pthread_self() |
+#define MUTEX_SETUP(x) pthread_mutex_init(&(x), nullptr) |
+#define MUTEX_CLEANUP(x) pthread_mutex_destroy(&(x)) |
+#define MUTEX_LOCK(x) pthread_mutex_lock(&(x)) |
+#define MUTEX_UNLOCK(x) pthread_mutex_unlock(&(x)) |
+#define THREAD_ID pthread_self() |
#else |
#error You must define mutex operations appropriate for your platform! |
#endif |
@@ -76,24 +76,16 @@ static int socket_free(BIO* data); |
// TODO(davidben): This should be const once BoringSSL is assumed. |
static BIO_METHOD methods_socket = { |
- BIO_TYPE_BIO, |
- "socket", |
- socket_write, |
- socket_read, |
- socket_puts, |
- 0, |
- socket_ctrl, |
- socket_new, |
- socket_free, |
- NULL, |
+ BIO_TYPE_BIO, "socket", socket_write, socket_read, socket_puts, 0, |
+ socket_ctrl, socket_new, socket_free, nullptr, |
}; |
static BIO_METHOD* BIO_s_socket2() { return(&methods_socket); } |
static BIO* BIO_new_socket(rtc::AsyncSocket* socket) { |
BIO* ret = BIO_new(BIO_s_socket2()); |
- if (ret == NULL) { |
- return NULL; |
+ if (ret == nullptr) { |
+ return nullptr; |
} |
ret->ptr = socket; |
return ret; |
@@ -108,7 +100,7 @@ static int socket_new(BIO* b) { |
} |
static int socket_free(BIO* b) { |
- if (b == NULL) |
+ if (b == nullptr) |
return 0; |
return 1; |
} |
@@ -175,7 +167,7 @@ namespace rtc { |
#ifndef OPENSSL_IS_BORINGSSL |
// This array will store all of the mutexes available to OpenSSL. |
-static MUTEX_TYPE* mutex_buf = NULL; |
+static MUTEX_TYPE* mutex_buf = nullptr; |
static void locking_function(int mode, int n, const char * file, int line) { |
if (mode & CRYPTO_LOCK) { |
@@ -195,7 +187,7 @@ static unsigned long id_function() { // NOLINT |
static CRYPTO_dynlock_value* dyn_create_function(const char* file, int line) { |
CRYPTO_dynlock_value* value = new CRYPTO_dynlock_value; |
if (!value) |
- return NULL; |
+ return nullptr; |
MUTEX_SETUP(value->mutex); |
return value; |
} |
@@ -217,7 +209,7 @@ static void dyn_destroy_function(CRYPTO_dynlock_value* l, |
#endif // #ifndef OPENSSL_IS_BORINGSSL |
-VerificationCallback OpenSSLAdapter::custom_verify_callback_ = NULL; |
+VerificationCallback OpenSSLAdapter::custom_verify_callback_ = nullptr; |
bool OpenSSLAdapter::InitializeSSL(VerificationCallback callback) { |
if (!InitializeSSLThread() || !SSL_library_init()) |
@@ -258,29 +250,29 @@ bool OpenSSLAdapter::CleanupSSL() { |
#ifndef OPENSSL_IS_BORINGSSL |
if (!mutex_buf) |
return false; |
- CRYPTO_set_id_callback(NULL); |
- CRYPTO_set_locking_callback(NULL); |
- CRYPTO_set_dynlock_create_callback(NULL); |
- CRYPTO_set_dynlock_lock_callback(NULL); |
- CRYPTO_set_dynlock_destroy_callback(NULL); |
+ CRYPTO_set_id_callback(nullptr); |
+ CRYPTO_set_locking_callback(nullptr); |
+ CRYPTO_set_dynlock_create_callback(nullptr); |
+ CRYPTO_set_dynlock_lock_callback(nullptr); |
+ CRYPTO_set_dynlock_destroy_callback(nullptr); |
for (int i = 0; i < CRYPTO_num_locks(); ++i) |
MUTEX_CLEANUP(mutex_buf[i]); |
delete [] mutex_buf; |
- mutex_buf = NULL; |
+ mutex_buf = nullptr; |
#endif // #ifndef OPENSSL_IS_BORINGSSL |
return true; |
} |
OpenSSLAdapter::OpenSSLAdapter(AsyncSocket* socket) |
- : SSLAdapter(socket), |
- state_(SSL_NONE), |
- ssl_read_needs_write_(false), |
- ssl_write_needs_read_(false), |
- restartable_(false), |
- ssl_(NULL), ssl_ctx_(NULL), |
- ssl_mode_(SSL_MODE_TLS), |
- custom_verification_succeeded_(false) { |
-} |
+ : SSLAdapter(socket), |
+ state_(SSL_NONE), |
+ ssl_read_needs_write_(false), |
+ ssl_write_needs_read_(false), |
+ restartable_(false), |
+ ssl_(nullptr), |
+ ssl_ctx_(nullptr), |
+ ssl_mode_(SSL_MODE_TLS), |
+ custom_verification_succeeded_(false) {} |
OpenSSLAdapter::~OpenSSLAdapter() { |
Cleanup(); |
@@ -320,7 +312,7 @@ OpenSSLAdapter::BeginSSL() { |
RTC_DCHECK(state_ == SSL_CONNECTING); |
int err = 0; |
- BIO* bio = NULL; |
+ BIO* bio = nullptr; |
// First set up the context |
if (!ssl_ctx_) |
@@ -350,7 +342,7 @@ OpenSSLAdapter::BeginSSL() { |
SSL_MODE_ACCEPT_MOVING_WRITE_BUFFER); |
// the SSL object owns the bio now |
- bio = NULL; |
+ bio = nullptr; |
// Do the connect |
err = ContinueSSL(); |
@@ -441,12 +433,12 @@ OpenSSLAdapter::Cleanup() { |
if (ssl_) { |
SSL_free(ssl_); |
- ssl_ = NULL; |
+ ssl_ = nullptr; |
} |
if (ssl_ctx_) { |
SSL_CTX_free(ssl_ctx_); |
- ssl_ctx_ = NULL; |
+ ssl_ctx_ = nullptr; |
} |
// Clear the DTLS timer |
@@ -714,7 +706,7 @@ bool OpenSSLAdapter::VerifyServerName(SSL* ssl, const char* host, |
// Checking the return from SSL_get_peer_certificate here is not strictly |
// necessary. With our setup, it is not possible for it to return |
- // NULL. However, it is good form to check the return. |
+ // null. However, it is good form to check the return. |
X509* certificate = SSL_get_peer_certificate(ssl); |
if (!certificate) |
return false; |
@@ -732,7 +724,7 @@ bool OpenSSLAdapter::VerifyServerName(SSL* ssl, const char* host, |
BIO_free(mem); |
char* cipher_description = |
- SSL_CIPHER_description(SSL_get_current_cipher(ssl), NULL, 128); |
+ SSL_CIPHER_description(SSL_get_current_cipher(ssl), nullptr, 128); |
LOG(LS_INFO) << "Cipher: " << cipher_description; |
OPENSSL_free(cipher_description); |
} |
@@ -749,7 +741,7 @@ bool OpenSSLAdapter::VerifyServerName(SSL* ssl, const char* host, |
if (!meth) |
break; |
- void* ext_str = NULL; |
+ void* ext_str = nullptr; |
// We assign this to a local variable, instead of passing the address |
// directly to ASN1_item_d2i. |
@@ -760,14 +752,15 @@ bool OpenSSLAdapter::VerifyServerName(SSL* ssl, const char* host, |
(const_cast<const unsigned char **>(&ext_value_data)); |
if (meth->it) { |
- ext_str = ASN1_item_d2i(NULL, ext_value_data_ptr, |
- extension->value->length, |
- ASN1_ITEM_ptr(meth->it)); |
+ ext_str = |
+ ASN1_item_d2i(nullptr, ext_value_data_ptr, extension->value->length, |
+ ASN1_ITEM_ptr(meth->it)); |
} else { |
- ext_str = meth->d2i(NULL, ext_value_data_ptr, extension->value->length); |
+ ext_str = |
+ meth->d2i(nullptr, ext_value_data_ptr, extension->value->length); |
} |
- STACK_OF(CONF_VALUE)* value = meth->i2v(meth, ext_str, NULL); |
+ STACK_OF(CONF_VALUE)* value = meth->i2v(meth, ext_str, nullptr); |
// Cast to size_t to be compilable for both OpenSSL and BoringSSL. |
for (size_t j = 0; j < static_cast<size_t>(sk_CONF_VALUE_num(value)); |
@@ -780,7 +773,7 @@ bool OpenSSLAdapter::VerifyServerName(SSL* ssl, const char* host, |
} |
} |
sk_CONF_VALUE_pop_free(value, X509V3_conf_free); |
- value = NULL; |
+ value = nullptr; |
if (meth->it) { |
ASN1_item_free(reinterpret_cast<ASN1_VALUE*>(ext_str), |
@@ -788,7 +781,7 @@ bool OpenSSLAdapter::VerifyServerName(SSL* ssl, const char* host, |
} else { |
meth->ext_free(ext_str); |
} |
- ext_str = NULL; |
+ ext_str = nullptr; |
} |
if (ok) |
break; |
@@ -796,10 +789,9 @@ bool OpenSSLAdapter::VerifyServerName(SSL* ssl, const char* host, |
char data[256]; |
X509_NAME* subject; |
- if (!ok |
- && ((subject = X509_get_subject_name(certificate)) != NULL) |
- && (X509_NAME_get_text_by_NID(subject, NID_commonName, |
- data, sizeof(data)) > 0)) { |
+ if (!ok && ((subject = X509_get_subject_name(certificate)) != nullptr) && |
+ (X509_NAME_get_text_by_NID(subject, NID_commonName, data, sizeof(data)) > |
+ 0)) { |
data[sizeof(data)-1] = 0; |
if (_stricmp(data, host) == 0) |
ok = true; |
@@ -916,8 +908,8 @@ bool OpenSSLAdapter::ConfigureTrustedRootCertificates(SSL_CTX* ctx) { |
for (size_t i = 0; i < arraysize(kSSLCertCertificateList); i++) { |
const unsigned char* cert_buffer = kSSLCertCertificateList[i]; |
size_t cert_buffer_len = kSSLCertCertificateSizeList[i]; |
- X509* cert = d2i_X509(NULL, &cert_buffer, |
- checked_cast<long>(cert_buffer_len)); |
+ X509* cert = |
+ d2i_X509(nullptr, &cert_buffer, checked_cast<long>(cert_buffer_len)); |
if (cert) { |
int return_value = X509_STORE_add_cert(SSL_CTX_get_cert_store(ctx), cert); |
if (return_value == 0) { |
@@ -935,16 +927,16 @@ SSL_CTX* |
OpenSSLAdapter::SetupSSLContext() { |
SSL_CTX* ctx = SSL_CTX_new(ssl_mode_ == SSL_MODE_DTLS ? |
DTLSv1_client_method() : TLSv1_client_method()); |
- if (ctx == NULL) { |
+ if (ctx == nullptr) { |
unsigned long error = ERR_get_error(); // NOLINT: type used by OpenSSL. |
LOG(LS_WARNING) << "SSL_CTX creation failed: " |
<< '"' << ERR_reason_error_string(error) << "\" " |
<< "(error=" << error << ')'; |
- return NULL; |
+ return nullptr; |
} |
if (!ConfigureTrustedRootCertificates(ctx)) { |
SSL_CTX_free(ctx); |
- return NULL; |
+ return nullptr; |
} |
#if !defined(NDEBUG) |