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.
This commit is contained in:
Marcello Stanisci 2019-05-16 16:58:09 +02:00
parent 8d34b22aff
commit 95933156a6
No known key found for this signature in database
GPG Key ID: 8D526861953F4C0F
4 changed files with 16 additions and 13 deletions

View File

@ -189,7 +189,6 @@ TALER_BANK_admin_add_incoming (struct GNUNET_CURL_Context *ctx,
struct TALER_BANK_AdminAddIncomingHandle *aai;
json_t *admin_obj;
CURL *eh;
struct curl_slist *headers = NULL;
if (NULL == exchange_base_url)
{
@ -213,11 +212,13 @@ TALER_BANK_admin_add_incoming (struct GNUNET_CURL_Context *ctx,
aai->cb_cls = res_cb_cls;
aai->request_url = TALER_BANK_path_to_url_ (bank_base_url,
"/admin/add/incoming");
headers = TALER_BANK_make_auth_header_ (auth);
aai->post_ctx.headers = TALER_BANK_make_auth_header_ (auth);
GNUNET_assert
(NULL != (aai->post_ctx.headers = curl_slist_append
(aai->post_ctx.headers,
"Content-Type: application/json")));
GNUNET_assert (NULL !=
(headers = curl_slist_append (headers,
"Content-Type: application/json")));
eh = curl_easy_init ();
GNUNET_assert (GNUNET_OK ==
@ -232,7 +233,7 @@ TALER_BANK_admin_add_incoming (struct GNUNET_CURL_Context *ctx,
aai->job = GNUNET_CURL_job_add2 (ctx,
eh,
headers,
aai->post_ctx.headers,
&handle_admin_add_incoming_finished,
aai);
return aai;

View File

@ -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);

View File

@ -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

View File

@ -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;
};