diff options
author | Florian Dold <florian.dold@gmail.com> | 2018-10-18 21:33:37 +0200 |
---|---|---|
committer | Florian Dold <florian.dold@gmail.com> | 2018-10-18 21:41:05 +0200 |
commit | 9114794bee49af5d7c38d7f69a31808e4dedb6b1 (patch) | |
tree | d8f4ca8f2915b21fd0324d2ab488fc6b9f70da2d /src/exchange-lib | |
parent | 16b0c6547084e88aec7105e23cc5f6fd72abaf4f (diff) |
exchange-lib: disable 'Expect: 100-continue'
Diffstat (limited to 'src/exchange-lib')
-rw-r--r-- | src/exchange-lib/curl_defaults.c | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/src/exchange-lib/curl_defaults.c b/src/exchange-lib/curl_defaults.c index ccadffa28..b46507b91 100644 --- a/src/exchange-lib/curl_defaults.c +++ b/src/exchange-lib/curl_defaults.c @@ -49,5 +49,26 @@ TEL_curl_easy_get (char *url) CURLOPT_TCP_FASTOPEN, 1L)); + { + /* Unfortunately libcurl needs chunk to be alive until after + curl_easy_perform. To avoid manual cleanup, we keep + one static list here. */ + static struct curl_slist *chunk = NULL; + if (NULL == chunk) + { + /* With POST requests, we do not want to wait for the + "100 Continue" response, as our request bodies are usually + small and directy sending them saves us a round trip. + + Clearing the expect header like this disables libcurl's + default processing of the header. + + Disabling this header is safe for other HTTP methods, thus + we don't distinguish further before setting it. */ + chunk = curl_slist_append (chunk, "Expect:"); + } + GNUNET_assert (CURLE_OK == curl_easy_setopt (eh, CURLOPT_HTTPHEADER, chunk)); + } + return eh; } |