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-20 20:02:30 +0000
commita8f474bb0428b37efc4e48f74a7b881f5ef49213 (patch)
tree247b5e85f069d444efe5ad32a446e7410d10f4e6
parent9853be92a5f34ba722145a185c29542a02563f7b (diff)
downloadmongo-a8f474bb0428b37efc4e48f74a7b881f5ef49213.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 6ce87c1a80d..fa1834c8bde 100644
--- a/src/mongo/util/net/http_client_curl.cpp
+++ b/src/mongo/util/net/http_client_curl.cpp
@@ -596,14 +596,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 {
@@ -705,8 +697,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 d972e60065e..6fedd870de2 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 {