diff options
author | Mark Benvenuto <mark.benvenuto@mongodb.com> | 2018-01-29 13:12:49 -0500 |
---|---|---|
committer | Mark Benvenuto <mark.benvenuto@mongodb.com> | 2018-01-29 13:12:49 -0500 |
commit | 6d41f4b4c26de7af4752d8854092bcdd2f8de097 (patch) | |
tree | 2d8be6c95d45b8b8279ce7fc8719d5acbee29052 /src/mongo/util | |
parent | a263ed4f10132b32117c3981cdaec9522e1288a2 (diff) | |
download | mongo-6d41f4b4c26de7af4752d8854092bcdd2f8de097.tar.gz |
SERVER-32751 Simplify SSLManagerInterface
Diffstat (limited to 'src/mongo/util')
-rw-r--r-- | src/mongo/util/net/ssl_manager.h | 8 | ||||
-rw-r--r-- | src/mongo/util/net/ssl_manager_openssl.cpp | 40 |
2 files changed, 7 insertions, 41 deletions
diff --git a/src/mongo/util/net/ssl_manager.h b/src/mongo/util/net/ssl_manager.h index ebf6021fec9..ea02f94496c 100644 --- a/src/mongo/util/net/ssl_manager.h +++ b/src/mongo/util/net/ssl_manager.h @@ -157,16 +157,8 @@ public: virtual int SSL_write(SSLConnectionInterface* conn, const void* buf, int num) = 0; - virtual unsigned long ERR_get_error() = 0; - - virtual char* ERR_error_string(unsigned long e, char* buf) = 0; - - virtual int SSL_get_error(const SSLConnectionInterface* conn, int ret) = 0; - virtual int SSL_shutdown(SSLConnectionInterface* conn) = 0; - virtual void SSL_free(SSLConnectionInterface* conn) = 0; - enum class ConnectionDirection { kIncoming, kOutgoing }; /** diff --git a/src/mongo/util/net/ssl_manager_openssl.cpp b/src/mongo/util/net/ssl_manager_openssl.cpp index fb141e4c9a7..a9290610d53 100644 --- a/src/mongo/util/net/ssl_manager_openssl.cpp +++ b/src/mongo/util/net/ssl_manager_openssl.cpp @@ -352,15 +352,7 @@ public: int SSL_write(SSLConnectionInterface* conn, const void* buf, int num) final; - virtual unsigned long ERR_get_error() final; - - virtual char* ERR_error_string(unsigned long e, char* buf) final; - - virtual int SSL_get_error(const SSLConnectionInterface* conn, int ret) final; - - virtual int SSL_shutdown(SSLConnectionInterface* conn) final; - - void SSL_free(SSLConnectionInterface* conn) final; + int SSL_shutdown(SSLConnectionInterface* conn) final; private: const int _rolesNid = OBJ_create(mongodbRolesOID.identifier.c_str(), @@ -635,7 +627,7 @@ int SSLManagerOpenSSL::SSL_read(SSLConnectionInterface* connInterface, void* buf } while (!_doneWithSSLOp(conn, status)); if (status <= 0) - _handleSSLError(SSL_get_error(conn, status), status); + _handleSSLError(SSL_get_error(conn->ssl, status), status); return status; } @@ -647,23 +639,10 @@ int SSLManagerOpenSSL::SSL_write(SSLConnectionInterface* connInterface, const vo } while (!_doneWithSSLOp(conn, status)); if (status <= 0) - _handleSSLError(SSL_get_error(conn, status), status); + _handleSSLError(SSL_get_error(conn->ssl, status), status); return status; } -unsigned long SSLManagerOpenSSL::ERR_get_error() { - return ::ERR_get_error(); -} - -char* SSLManagerOpenSSL::ERR_error_string(unsigned long e, char* buf) { - return ::ERR_error_string(e, buf); -} - -int SSLManagerOpenSSL::SSL_get_error(const SSLConnectionInterface* connInterface, int ret) { - const SSLConnection* conn = checked_cast<const SSLConnection*>(connInterface); - return ::SSL_get_error(conn->ssl, ret); -} - int SSLManagerOpenSSL::SSL_shutdown(SSLConnectionInterface* connInterface) { int status; SSLConnectionOpenSSL* conn = checked_cast<SSLConnectionOpenSSL*>(connInterface); @@ -672,15 +651,10 @@ int SSLManagerOpenSSL::SSL_shutdown(SSLConnectionInterface* connInterface) { } while (!_doneWithSSLOp(conn, status)); if (status < 0) - _handleSSLError(SSL_get_error(conn, status), status); + _handleSSLError(SSL_get_error(conn->ssl, status), status); return status; } -void SSLManagerOpenSSL::SSL_free(SSLConnectionInterface* connInterface) { - SSLConnectionOpenSSL* conn = checked_cast<SSLConnectionOpenSSL*>(connInterface); - return ::SSL_free(conn->ssl); -} - Status SSLManagerOpenSSL::initSSLContext(SSL_CTX* context, const SSLParams& params, ConnectionDirection direction) { @@ -1216,14 +1190,14 @@ SSLConnectionInterface* SSLManagerOpenSSL::connect(Socket* socket) { const auto undotted = removeFQDNRoot(socket->remoteAddr().hostOrIp()); int ret = ::SSL_set_tlsext_host_name(sslConn->ssl, undotted.c_str()); if (ret != 1) - _handleSSLError(SSL_get_error(sslConn.get(), ret), ret); + _handleSSLError(SSL_get_error(sslConn.get()->ssl, ret), ret); do { ret = ::SSL_connect(sslConn->ssl); } while (!_doneWithSSLOp(sslConn.get(), ret)); if (ret != 1) - _handleSSLError(SSL_get_error(sslConn.get(), ret), ret); + _handleSSLError(SSL_get_error(sslConn.get()->ssl, ret), ret); return sslConn.release(); } @@ -1240,7 +1214,7 @@ SSLConnectionInterface* SSLManagerOpenSSL::accept(Socket* socket, } while (!_doneWithSSLOp(sslConn.get(), ret)); if (ret != 1) - _handleSSLError(SSL_get_error(sslConn.get(), ret), ret); + _handleSSLError(SSL_get_error(sslConn.get()->ssl, ret), ret); return sslConn.release(); } |