diff options
author | Gabriel Marks <gabriel.marks@mongodb.com> | 2022-05-06 19:41:52 +0000 |
---|---|---|
committer | Evergreen Agent <no-reply@evergreen.mongodb.com> | 2022-05-18 20:28:09 +0000 |
commit | c94bb9c1fbc93b250ac3269e2e207d3b2aa2a1b7 (patch) | |
tree | 63bf927f347369e423c1825c86586af8a68b6b9d | |
parent | b82d63b3529bab2abb2a4a6e6c688b9f31a105dc (diff) | |
download | mongo-c94bb9c1fbc93b250ac3269e2e207d3b2aa2a1b7.tar.gz |
SERVER-66087 Move curlLibraryManager.initialize() to global initializer
-rw-r--r-- | src/mongo/util/net/http_client_curl.cpp | 29 |
1 files changed, 12 insertions, 17 deletions
diff --git a/src/mongo/util/net/http_client_curl.cpp b/src/mongo/util/net/http_client_curl.cpp index 24c8b1946fc..3e6183d2ebf 100644 --- a/src/mongo/util/net/http_client_curl.cpp +++ b/src/mongo/util/net/http_client_curl.cpp @@ -108,18 +108,8 @@ public: } Status initialize() { - auto status = _initializeGlobal(); - if (!status.isOK()) { - return status; - } - - return Status::OK(); - } - -private: - Status _initializeGlobal() { if (_initialized) { - return Status::OK(); + return {ErrorCodes::AlreadyInitialized, "CurlLibraryManager already initialized."}; } CURLcode ret = curl_global_init(CURL_GLOBAL_ALL); @@ -137,6 +127,10 @@ private: return Status::OK(); } + bool isInitialized() const { + return _initialized; + } + private: bool _initialized = false; @@ -712,17 +706,17 @@ public: } std::unique_ptr<HttpClient> create() final { - uassertStatusOK(curlLibraryManager.initialize()); + invariant(curlLibraryManager.isInitialized()); return std::make_unique<CurlHttpClient>(HttpConnectionPool::kUse); } std::unique_ptr<HttpClient> createWithoutConnectionPool() final { - uassertStatusOK(curlLibraryManager.initialize()); + invariant(curlLibraryManager.isInitialized()); return std::make_unique<CurlHttpClient>(HttpConnectionPool::kDoNotUse); } BSONObj getServerStatus() final { - + invariant(curlLibraryManager.isInitialized()); BSONObjBuilder info; info.append("type", "curl"); @@ -747,9 +741,10 @@ public: } // namespace -// Transitional API used by blockstore to trigger libcurl init -// until it's been migrated to use the HTTPClient API. -Status curlLibraryManager_initialize() { +MONGO_INITIALIZER_GENERAL(CurlLibraryManager, + (), + ("BeginStartupOptionParsing", "NativeSaslClientContext")) +(InitializerContext* context) { return curlLibraryManager.initialize(); } |