diff options
author | Håvard Pettersen <havardpe@oath.com> | 2018-08-27 08:56:49 +0000 |
---|---|---|
committer | Håvard Pettersen <havardpe@oath.com> | 2018-08-27 12:01:22 +0000 |
commit | ba1100ee847c6085a85cda1f264e7b699d85c407 (patch) | |
tree | fb07b3df5d5214ac324d14f74e7a841f112b4bfb /vespalib | |
parent | 627e9f07b4ddbf25eb69946fed3131af15cc3996 (diff) |
integrate Crypto{Engine,Socket} into fnet
Diffstat (limited to 'vespalib')
-rw-r--r-- | vespalib/src/vespa/vespalib/net/crypto_engine.cpp | 19 | ||||
-rw-r--r-- | vespalib/src/vespa/vespalib/net/crypto_engine.h | 5 |
2 files changed, 24 insertions, 0 deletions
diff --git a/vespalib/src/vespa/vespalib/net/crypto_engine.cpp b/vespalib/src/vespa/vespalib/net/crypto_engine.cpp index 78499d6d18e..ec436a414cc 100644 --- a/vespalib/src/vespa/vespalib/net/crypto_engine.cpp +++ b/vespalib/src/vespa/vespalib/net/crypto_engine.cpp @@ -155,10 +155,29 @@ public: } }; +CryptoEngine::SP create_default_crypto_engine() { + // TODO: check VESPA_TLS_CONFIG_FILE here + // return std::make_shared<XorCryptoEngine>(); + return std::make_shared<NullCryptoEngine>(); } +} // namespace vespalib::<unnamed> + +std::mutex CryptoEngine::_shared_lock; +CryptoEngine::SP CryptoEngine::_shared_default(nullptr); + CryptoEngine::~CryptoEngine() = default; +CryptoEngine::SP +CryptoEngine::get_default() +{ + std::lock_guard<std::mutex> guard(_shared_lock); + if (!_shared_default) { + _shared_default = create_default_crypto_engine(); + } + return _shared_default; +} + CryptoSocket::UP NullCryptoEngine::create_crypto_socket(SocketHandle socket, bool) { diff --git a/vespalib/src/vespa/vespalib/net/crypto_engine.h b/vespalib/src/vespa/vespalib/net/crypto_engine.h index 0f491838a6a..177766fb789 100644 --- a/vespalib/src/vespa/vespalib/net/crypto_engine.h +++ b/vespalib/src/vespa/vespalib/net/crypto_engine.h @@ -5,6 +5,7 @@ #include "socket_handle.h" #include "crypto_socket.h" #include <memory> +#include <mutex> namespace vespalib { @@ -18,6 +19,10 @@ struct CryptoEngine { using SP = std::shared_ptr<CryptoEngine>; virtual CryptoSocket::UP create_crypto_socket(SocketHandle socket, bool is_server) = 0; virtual ~CryptoEngine(); + static CryptoEngine::SP get_default(); +private: + static std::mutex _shared_lock; + static CryptoEngine::SP _shared_default; }; /** |