Skip to content
This repository was archived by the owner on Jan 23, 2023. It is now read-only.

Commit fe63206

Browse files
authored
enable tcp keep-alive on curl handler (#28588)
1 parent 45fb8a6 commit fe63206

File tree

4 files changed

+5
-0
lines changed

4 files changed

+5
-0
lines changed

src/Common/src/Interop/Unix/System.Net.Http.Native/Interop.Easy.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -111,6 +111,7 @@ internal enum CURLoption
111111
CURLOPT_PROXYTYPE = CurlOptionLongBase + 101,
112112
CURLOPT_HTTPAUTH = CurlOptionLongBase + 107,
113113
CURLOPT_TCP_NODELAY = CurlOptionLongBase + 121,
114+
CURLOPT_TCP_KEEPALIVE = CurlOptionLongBase + 213,
114115
CURLOPT_CONNECTTIMEOUT_MS = CurlOptionLongBase + 156,
115116
CURLOPT_ADDRESS_SCOPE = CurlOptionLongBase + 171,
116117
CURLOPT_PROTOCOLS = CurlOptionLongBase + 181,

src/Native/Unix/System.Net.Http.Native/pal_easy.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ static_assert(PAL_CURLOPT_NOSIGNAL == CURLOPT_NOSIGNAL, "");
2626
static_assert(PAL_CURLOPT_PROXYTYPE == CURLOPT_PROXYTYPE, "");
2727
static_assert(PAL_CURLOPT_HTTPAUTH == CURLOPT_HTTPAUTH, "");
2828
static_assert(PAL_CURLOPT_TCP_NODELAY == CURLOPT_TCP_NODELAY, "");
29+
static_assert(PAL_CURLOPT_TCP_KEEPALIVE == CURLOPT_TCP_KEEPALIVE, "");
2930
static_assert(PAL_CURLOPT_CONNECTTIMEOUT_MS == CURLOPT_CONNECTTIMEOUT_MS, "");
3031
static_assert(PAL_CURLOPT_ADDRESS_SCOPE == CURLOPT_ADDRESS_SCOPE, "");
3132
static_assert(PAL_CURLOPT_PROTOCOLS == CURLOPT_PROTOCOLS, "");

src/Native/Unix/System.Net.Http.Native/pal_easy.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ enum PAL_CURLoption : int32_t
3535
PAL_CURLOPT_PROXYTYPE = CurlOptionLongBase + 101,
3636
PAL_CURLOPT_HTTPAUTH = CurlOptionLongBase + 107,
3737
PAL_CURLOPT_TCP_NODELAY = CurlOptionLongBase + 121,
38+
PAL_CURLOPT_TCP_KEEPALIVE = CurlOptionLongBase + 213,
3839
PAL_CURLOPT_CONNECTTIMEOUT_MS = CurlOptionLongBase + 156,
3940
PAL_CURLOPT_ADDRESS_SCOPE = CurlOptionLongBase + 171,
4041
PAL_CURLOPT_PROTOCOLS = CurlOptionLongBase + 181,

src/System.Net.Http/src/System/Net/Http/CurlHandler/CurlHandler.EasyRequest.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -300,6 +300,8 @@ private void SetNetworkingOptions()
300300
// and when enabled has a measurably negative impact on latency in key scenarios
301301
// (e.g. POST'ing small-ish data).
302302
SetCurlOption(CURLoption.CURLOPT_TCP_NODELAY, 1L);
303+
// Enable TCP keep-alive.
304+
SetCurlOption(CURLoption.CURLOPT_TCP_KEEPALIVE, 1L);
303305
}
304306

305307
private void SetMultithreading()

0 commit comments

Comments
 (0)