Details
-
Task
-
Resolution: Fixed
-
Major - P3
-
None
-
None
-
None
-
Fully Compatible
-
Security 2020-07-13, Security 2020-07-27
Description
- Change TransportLayer/ASIO to store std::shared_ptr<SSLManagerInterface>
- Change TransportLayer/ASIO to call getSSLManagerCoordinator() once per connection
- ServerStatus and InitializeGlobalServerState are permitted to call getSSLManagerCoordinator()
- Add a new class called getSSLManagerCoordinator in ssl_manager.h/cpp
class SSLManagerCoordinator {static SSLManagerCoordinator* get()std::shared_ptr<SSLManagerInterface> getSSLManager();void rotate();Mutex _lock;synchronized_value<std::shared_ptr<SSLManagerInterface>> _manager;}; - Note: In this change, rotate() is a noop and will be implemented in a later change
- Implement constructor and destructor of first SSLManagerInterace by calling SLManagerInterface::create using GlobalInitializerRegisterer
- Remove global initializers for existing SSLManagers in ssl_manager_<windows/apple/openssl>.cpp
- Remove theSSLManager