aboutsummaryrefslogtreecommitdiff
path: root/src/lib/exchange_api_refund.c
diff options
context:
space:
mode:
authorng0 <ng0@n0.is>2019-05-07 14:35:32 +0000
committerng0 <ng0@n0.is>2019-05-07 14:35:32 +0000
commit105555b46975edef914fc39195941cf14d64e760 (patch)
tree81f2529f09a7b66f4510a8f6ef8099ce3ea2acfe /src/lib/exchange_api_refund.c
parent0d8f5035437d5a0daff3505978bc60dad50f55f2 (diff)
parenta16c32a4745634b77439200ee4831fed2811fd8a (diff)
Merge branch 'master' of git.taler.net:exchange
Diffstat (limited to 'src/lib/exchange_api_refund.c')
-rw-r--r--src/lib/exchange_api_refund.c30
1 files changed, 16 insertions, 14 deletions
diff --git a/src/lib/exchange_api_refund.c b/src/lib/exchange_api_refund.c
index 75ebdc4e..14221317 100644
--- a/src/lib/exchange_api_refund.c
+++ b/src/lib/exchange_api_refund.c
@@ -49,9 +49,10 @@ struct TALER_EXCHANGE_RefundHandle
char *url;
/**
- * JSON encoding of the request to POST.
+ * Context for #TEH_curl_easy_post(). Keeps the data that must
+ * persist for Curl to make the upload.
*/
- char *json_enc;
+ struct TEAH_PostContext ctx;
/**
* Handle for the request.
@@ -368,21 +369,22 @@ refund_obj = json_pack ("{s:o, s:o," /* amount/fee */
refund_fee);
eh = TEL_curl_easy_get (rh->url);
- GNUNET_assert (NULL != (rh->json_enc =
- json_dumps (refund_obj,
- JSON_COMPACT)));
+ if (GNUNET_OK !=
+ TEAH_curl_easy_post (&rh->ctx,
+ eh,
+ refund_obj))
+ {
+ GNUNET_break (0);
+ curl_easy_cleanup (eh);
+ json_decref (refund_obj);
+ GNUNET_free (rh->url);
+ GNUNET_free (rh);
+ return NULL;
+ }
json_decref (refund_obj);
GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
"URL for refund: `%s'\n",
rh->url);
- GNUNET_assert (CURLE_OK ==
- curl_easy_setopt (eh,
- CURLOPT_POSTFIELDS,
- rh->json_enc));
- GNUNET_assert (CURLE_OK ==
- curl_easy_setopt (eh,
- CURLOPT_POSTFIELDSIZE,
- strlen (rh->json_enc)));
ctx = TEAH_handle_to_context (exchange);
rh->job = GNUNET_CURL_job_add (ctx,
eh,
@@ -408,7 +410,7 @@ TALER_EXCHANGE_refund_cancel (struct TALER_EXCHANGE_RefundHandle *refund)
refund->job = NULL;
}
GNUNET_free (refund->url);
- GNUNET_free (refund->json_enc);
+ TEAH_curl_easy_post_finished (&refund->ctx);
GNUNET_free (refund);
}