summaryrefslogtreecommitdiff
path: root/src/lib/exchange_api_csr_melt.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/exchange_api_csr_melt.c')
-rw-r--r--src/lib/exchange_api_csr_melt.c39
1 files changed, 19 insertions, 20 deletions
diff --git a/src/lib/exchange_api_csr_melt.c b/src/lib/exchange_api_csr_melt.c
index 9de8cd8d9..bf6f4bfe1 100644
--- a/src/lib/exchange_api_csr_melt.c
+++ b/src/lib/exchange_api_csr_melt.c
@@ -38,10 +38,6 @@
*/
struct TALER_EXCHANGE_CsRMeltHandle
{
- /**
- * The connection to exchange this request handle will use
- */
- struct TALER_EXCHANGE_Handle *exchange;
/**
* Function to call with the result.
@@ -90,15 +86,15 @@ csr_ok (struct TALER_EXCHANGE_CsRMeltHandle *csrh,
const json_t *arr,
struct TALER_EXCHANGE_HttpResponse *hr)
{
- unsigned int alen = json_array_size (arr);
+ size_t alen = json_array_size (arr);
struct TALER_ExchangeWithdrawValues alg_values[GNUNET_NZL (alen)];
struct TALER_EXCHANGE_CsRMeltResponse csrr = {
.hr = *hr,
- .details.success.alg_values_len = alen,
- .details.success.alg_values = alg_values
+ .details.ok.alg_values_len = alen,
+ .details.ok.alg_values = alg_values
};
- for (unsigned int i = 0; i<alen; i++)
+ for (size_t i = 0; i<alen; i++)
{
json_t *av = json_array_get (arr,
i);
@@ -120,6 +116,8 @@ csr_ok (struct TALER_EXCHANGE_CsRMeltHandle *csrh,
}
csrh->cb (csrh->cb_cls,
&csrr);
+ for (size_t i = 0; i<alen; i++)
+ TALER_denom_ewv_free (&alg_values[i]);
return GNUNET_OK;
}
@@ -220,12 +218,14 @@ handle_csr_finished (void *cls,
struct TALER_EXCHANGE_CsRMeltHandle *
-TALER_EXCHANGE_csr_melt (struct TALER_EXCHANGE_Handle *exchange,
- const struct TALER_RefreshMasterSecretP *rms,
- unsigned int nks_len,
- struct TALER_EXCHANGE_NonceKey *nks,
- TALER_EXCHANGE_CsRMeltCallback res_cb,
- void *res_cb_cls)
+TALER_EXCHANGE_csr_melt (
+ struct GNUNET_CURL_Context *ctx,
+ const char *url,
+ const struct TALER_RefreshMasterSecretP *rms,
+ unsigned int nks_len,
+ struct TALER_EXCHANGE_NonceKey nks[static nks_len],
+ TALER_EXCHANGE_CsRMeltCallback res_cb,
+ void *res_cb_cls)
{
struct TALER_EXCHANGE_CsRMeltHandle *csrh;
json_t *csr_arr;
@@ -236,13 +236,13 @@ TALER_EXCHANGE_csr_melt (struct TALER_EXCHANGE_Handle *exchange,
return NULL;
}
for (unsigned int i = 0; i<nks_len; i++)
- if (TALER_DENOMINATION_CS != nks[i].pk->key.cipher)
+ if (GNUNET_CRYPTO_BSA_CS !=
+ nks[i].pk->key.bsign_pub_key->cipher)
{
GNUNET_break (0);
return NULL;
}
csrh = GNUNET_new (struct TALER_EXCHANGE_CsRMeltHandle);
- csrh->exchange = exchange;
csrh->cb = res_cb;
csrh->cb_cls = res_cb_cls;
csr_arr = json_array ();
@@ -262,8 +262,9 @@ TALER_EXCHANGE_csr_melt (struct TALER_EXCHANGE_Handle *exchange,
json_array_append_new (csr_arr,
csr_obj));
}
- csrh->url = TEAH_path_to_url (exchange,
- "/csr-melt");
+ csrh->url = TALER_url_join (url,
+ "csr-melt",
+ NULL);
if (NULL == csrh->url)
{
json_decref (csr_arr);
@@ -272,7 +273,6 @@ TALER_EXCHANGE_csr_melt (struct TALER_EXCHANGE_Handle *exchange,
}
{
CURL *eh;
- struct GNUNET_CURL_Context *ctx;
json_t *req;
req = GNUNET_JSON_PACK (
@@ -280,7 +280,6 @@ TALER_EXCHANGE_csr_melt (struct TALER_EXCHANGE_Handle *exchange,
rms),
GNUNET_JSON_pack_array_steal ("nks",
csr_arr));
- ctx = TEAH_handle_to_context (exchange);
eh = TALER_EXCHANGE_curl_easy_get_ (csrh->url);
if ( (NULL == eh) ||
(GNUNET_OK !=