From 95933156a6d477460a20225209f556208702d55e Mon Sep 17 00:00:00 2001 From: Marcello Stanisci Date: Thu, 16 May 2019 16:58:09 +0200 Subject: Fix compression. The "Content-Encoding: deflate" header is now added from within the compression routine itself, and _not_ from the "exchange handle". This fixed the bank-lib functions as those do not use any exchange handle, and therefore were wrongly sending compressed bodies without adding the mentioned HTTP header. --- src/lib/exchange_api_handle.c | 6 ------ src/lib/teah_common.c | 4 ++++ src/lib/teah_common.h | 6 +++++- 3 files changed, 9 insertions(+), 7 deletions(-) (limited to 'src/lib') diff --git a/src/lib/exchange_api_handle.c b/src/lib/exchange_api_handle.c index 760c12788..fbff68d1b 100644 --- a/src/lib/exchange_api_handle.c +++ b/src/lib/exchange_api_handle.c @@ -1784,12 +1784,6 @@ TALER_EXCHANGE_connect GNUNET_break (GNUNET_OK == GNUNET_CURL_append_header (ctx, "Expect:")); -#if COMPRESS_BODIES - /* Tell exchange we compress bodies */ - GNUNET_break (GNUNET_OK == - GNUNET_CURL_append_header (ctx, - "Content-Encoding: deflate")); -#endif exchange = GNUNET_new (struct TALER_EXCHANGE_Handle); exchange->ctx = ctx; exchange->url = GNUNET_strdup (url); diff --git a/src/lib/teah_common.c b/src/lib/teah_common.c index 8f994ef36..1cbe9df78 100644 --- a/src/lib/teah_common.c +++ b/src/lib/teah_common.c @@ -78,6 +78,10 @@ TEAH_curl_easy_post (struct TEAH_PostContext *ctx, slen = (size_t) cbuf_size; ctx->json_enc = (char *) cbuf; } + GNUNET_assert + (NULL != (ctx->headers = curl_slist_append + (ctx->headers, + "Content-Encoding: deflate"))); #else ctx->json_enc = str; #endif diff --git a/src/lib/teah_common.h b/src/lib/teah_common.h index 66937a261..c72311850 100644 --- a/src/lib/teah_common.h +++ b/src/lib/teah_common.h @@ -30,7 +30,7 @@ /** * Should we compress PUT/POST bodies with 'deflate' encoding? */ -#define COMPRESS_BODIES 0 +#define COMPRESS_BODIES 1 /** * State used for #TEAL_curl_easy_post() and @@ -43,6 +43,10 @@ struct TEAH_PostContext */ char *json_enc; + /** + * Custom headers. + */ + struct curl_slist *headers; }; -- cgit v1.2.3