exchange

Base system with REST service to issue digital coins, run by the payment service provider
Log | Files | Refs | Submodules | README | LICENSE

commit 9114794bee49af5d7c38d7f69a31808e4dedb6b1
parent 16b0c6547084e88aec7105e23cc5f6fd72abaf4f
Author: Florian Dold <florian.dold@gmail.com>
Date:   Thu, 18 Oct 2018 21:33:37 +0200

exchange-lib: disable 'Expect: 100-continue'

Diffstat:
Msrc/exchange-lib/curl_defaults.c | 21+++++++++++++++++++++
1 file changed, 21 insertions(+), 0 deletions(-)

diff --git 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; }