summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGabriel Marks <gabriel.marks@mongodb.com>2022-05-05 18:50:35 +0000
committerEvergreen Agent <no-reply@evergreen.mongodb.com>2022-05-18 20:13:02 +0000
commitb82d63b3529bab2abb2a4a6e6c688b9f31a105dc (patch)
treebdec11a7317476b284b01fd40ef4550e7405c1de
parentb0475e2657c3351b25499971d3340f054ea85b98 (diff)
downloadmongo-b82d63b3529bab2abb2a4a6e6c688b9f31a105dc.tar.gz
SERVER-66111 Set default timeouts in HttpClient
-rw-r--r--src/mongo/util/net/http_client.h12
-rw-r--r--src/mongo/util/net/http_client_curl.cpp10
-rw-r--r--src/mongo/util/net/http_client_winhttp.cpp10
3 files changed, 10 insertions, 22 deletions
diff --git a/src/mongo/util/net/http_client.h b/src/mongo/util/net/http_client.h
index e47d4ea9582..82799aee6d4 100644
--- a/src/mongo/util/net/http_client.h
+++ b/src/mongo/util/net/http_client.h
@@ -81,13 +81,17 @@ public:
* Sets the maximum time to wait during the connection phase.
* `0` indicates no timeout.
*/
- virtual void setConnectTimeout(Seconds timeout) = 0;
+ void setConnectTimeout(Seconds timeout) {
+ _connectTimeout = timeout;
+ }
/**
* Sets the maximum time to wait for the total request.
* `0` indicates no timeout.
*/
- virtual void setTimeout(Seconds timeout) = 0;
+ void setTimeout(Seconds timeout) {
+ _timeout = timeout;
+ }
/**
* Perform a request to specified URL.
@@ -137,6 +141,10 @@ public:
*/
static BSONObj getServerStatus();
+protected:
+ Seconds _timeout = kTotalRequestTimeout;
+ Seconds _connectTimeout = kConnectionTimeout;
+
private:
DataBuilder requestSuccess(HttpMethod method, StringData url, ConstDataRange data) const {
auto reply = request(method, url, data);
diff --git a/src/mongo/util/net/http_client_curl.cpp b/src/mongo/util/net/http_client_curl.cpp
index d8c2fc025c7..24c8b1946fc 100644
--- a/src/mongo/util/net/http_client_curl.cpp
+++ b/src/mongo/util/net/http_client_curl.cpp
@@ -602,14 +602,6 @@ public:
_headers = headers;
}
- void setTimeout(Seconds timeout) final {
- _timeout = timeout;
- }
-
- void setConnectTimeout(Seconds timeout) final {
- _connectTimeout = timeout;
- }
-
HttpReply request(HttpMethod method,
StringData url,
ConstDataRange cdr = {nullptr, 0}) const final {
@@ -711,8 +703,6 @@ private:
HttpConnectionPool _pool;
bool _allowInsecure{false};
- Seconds _timeout;
- Seconds _connectTimeout;
};
class HttpClientProviderImpl : public HttpClientProvider {
diff --git a/src/mongo/util/net/http_client_winhttp.cpp b/src/mongo/util/net/http_client_winhttp.cpp
index 9e877966167..33319d4a421 100644
--- a/src/mongo/util/net/http_client_winhttp.cpp
+++ b/src/mongo/util/net/http_client_winhttp.cpp
@@ -147,14 +147,6 @@ public:
_headers = toNativeString(header.c_str());
}
- void setConnectTimeout(Seconds timeout) final {
- _connectTimeout = timeout;
- }
-
- void setTimeout(Seconds timeout) final {
- _timeout = timeout;
- }
-
HttpReply request(HttpMethod methodType, StringData urlSD, ConstDataRange cdrData) const final {
LPCWSTR method = L"GET";
LPVOID data = const_cast<void*>(static_cast<const void*>(cdrData.data()));
@@ -318,8 +310,6 @@ public:
private:
bool _allowInsecureHTTP = false;
std::wstring _headers;
- Seconds _connectTimeout = kConnectionTimeout;
- Seconds _timeout = kTotalRequestTimeout;
};
class HttpClientProviderImpl : public HttpClientProvider {