summaryrefslogtreecommitdiffstats
path: root/vespalib
diff options
context:
space:
mode:
authorHåvard Pettersen <havardpe@oath.com>2019-05-16 13:43:38 +0000
committerHåvard Pettersen <havardpe@oath.com>2019-05-16 13:43:38 +0000
commit40751f68804097d8988eeb246b21225c9f943129 (patch)
tree29ba5beef41a037f6b2ccd42dcc567ed48a80a14 /vespalib
parentdf51f56396d4beb5bf36e766b61841af0642ab3a (diff)
exit without core when crypto setup fails
Diffstat (limited to 'vespalib')
-rw-r--r--vespalib/src/vespa/vespalib/net/crypto_engine.cpp16
1 files changed, 11 insertions, 5 deletions
diff --git a/vespalib/src/vespa/vespalib/net/crypto_engine.cpp b/vespalib/src/vespa/vespalib/net/crypto_engine.cpp
index a8808741806..e6127204ac2 100644
--- a/vespalib/src/vespa/vespalib/net/crypto_engine.cpp
+++ b/vespalib/src/vespa/vespalib/net/crypto_engine.cpp
@@ -1,15 +1,16 @@
// Copyright 2018 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
#include "crypto_engine.h"
-#include <vespa/vespalib/stllike/string.h>
+#include <vespa/vespalib/data/smart_buffer.h>
#include <vespa/vespalib/net/tls/authorization_mode.h>
#include <vespa/vespalib/net/tls/auto_reloading_tls_crypto_engine.h>
+#include <vespa/vespalib/net/tls/crypto_exception.h>
+#include <vespa/vespalib/net/tls/maybe_tls_crypto_engine.h>
#include <vespa/vespalib/net/tls/statistics.h>
+#include <vespa/vespalib/net/tls/tls_crypto_engine.h>
#include <vespa/vespalib/net/tls/transport_security_options.h>
#include <vespa/vespalib/net/tls/transport_security_options_reading.h>
-#include <vespa/vespalib/net/tls/tls_crypto_engine.h>
-#include <vespa/vespalib/net/tls/maybe_tls_crypto_engine.h>
-#include <vespa/vespalib/data/smart_buffer.h>
+#include <vespa/vespalib/stllike/string.h>
#include <vector>
#include <chrono>
#include <thread>
@@ -240,7 +241,12 @@ CryptoEngine::get_default()
{
std::lock_guard guard(_shared_lock);
if (!_shared_default) {
- _shared_default = create_default_crypto_engine();
+ try {
+ _shared_default = create_default_crypto_engine();
+ } catch (net::tls::CryptoException &e) {
+ LOG(error, "failed to create default crypto engine: %s", e.what());
+ std::quick_exit(78);
+ }
}
return _shared_default;
}