-
Type: Task
-
Resolution: Fixed
-
Priority: Major - P3
-
Affects Version/s: None
-
Component/s: None
-
Labels:None
-
Fully Compatible
-
Security 2020-07-13, Security 2020-07-27
- 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