diff options
author | HÃ¥vard Pettersen <havardpe@gmail.com> | 2018-08-30 14:12:22 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-08-30 14:12:22 +0200 |
commit | fdeffcd889575dac81f76b534cab833e1bd0a2e4 (patch) | |
tree | c8d5e3afa68ac2843db3c8f4a2a9f3f12e67709b /vespalib | |
parent | 285594e2477a164a781d61a425b96205c5b4d728 (diff) | |
parent | a7eca91afb48a0d1664ec53eaebb86ffa069722b (diff) |
Merge pull request #6686 from vespa-engine/havardpe/integrate-crypto-engine-in-fnet
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..8832b4b1cfe 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 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; }; /** |