diff options
Diffstat (limited to 'src/lib/exchange_api_csr_withdraw.c')
-rw-r--r-- | src/lib/exchange_api_csr_withdraw.c | 41 |
1 files changed, 19 insertions, 22 deletions
diff --git a/src/lib/exchange_api_csr_withdraw.c b/src/lib/exchange_api_csr_withdraw.c index fa806857d..0fe731cd5 100644 --- a/src/lib/exchange_api_csr_withdraw.c +++ b/src/lib/exchange_api_csr_withdraw.c @@ -39,11 +39,6 @@ struct TALER_EXCHANGE_CsRWithdrawHandle { /** - * The connection to exchange this request handle will use - */ - struct TALER_EXCHANGE_Handle *exchange; - - /** * Function to call with the result. */ TALER_EXCHANGE_CsRWithdrawCallback cb; @@ -96,7 +91,7 @@ csr_ok (struct TALER_EXCHANGE_CsRWithdrawHandle *csrh, struct GNUNET_JSON_Specification spec[] = { TALER_JSON_spec_exchange_withdraw_values ( "ewv", - &csrr.details.success.alg_values), + &csrr.details.ok.alg_values), GNUNET_JSON_spec_end () }; @@ -110,6 +105,7 @@ csr_ok (struct TALER_EXCHANGE_CsRWithdrawHandle *csrh, } csrh->cb (csrh->cb_cls, &csrr); + TALER_denom_ewv_free (&csrr.details.ok.alg_values); return GNUNET_OK; } @@ -204,25 +200,28 @@ handle_csr_finished (void *cls, struct TALER_EXCHANGE_CsRWithdrawHandle * -TALER_EXCHANGE_csr_withdraw (struct TALER_EXCHANGE_Handle *exchange, - const struct TALER_EXCHANGE_DenomPublicKey *pk, - const struct TALER_CsNonce *nonce, - TALER_EXCHANGE_CsRWithdrawCallback res_cb, - void *res_cb_cls) +TALER_EXCHANGE_csr_withdraw ( + struct GNUNET_CURL_Context *curl_ctx, + const char *exchange_url, + const struct TALER_EXCHANGE_DenomPublicKey *pk, + const struct GNUNET_CRYPTO_CsSessionNonce *nonce, + TALER_EXCHANGE_CsRWithdrawCallback res_cb, + void *res_cb_cls) { struct TALER_EXCHANGE_CsRWithdrawHandle *csrh; - if (TALER_DENOMINATION_CS != pk->key.cipher) + if (GNUNET_CRYPTO_BSA_CS != + pk->key.bsign_pub_key->cipher) { GNUNET_break (0); return NULL; } csrh = GNUNET_new (struct TALER_EXCHANGE_CsRWithdrawHandle); - csrh->exchange = exchange; csrh->cb = res_cb; csrh->cb_cls = res_cb_cls; - csrh->url = TEAH_path_to_url (exchange, - "/csr-withdraw"); + csrh->url = TALER_url_join (exchange_url, + "csr-withdraw", + NULL); if (NULL == csrh->url) { GNUNET_free (csrh); @@ -231,18 +230,16 @@ TALER_EXCHANGE_csr_withdraw (struct TALER_EXCHANGE_Handle *exchange, { CURL *eh; - struct GNUNET_CURL_Context *ctx; json_t *req; req = GNUNET_JSON_PACK ( GNUNET_JSON_pack_data_varsize ("nonce", nonce, - sizeof(struct TALER_CsNonce)), + sizeof(*nonce)), GNUNET_JSON_pack_data_varsize ("denom_pub_hash", &pk->h_key, - sizeof(struct TALER_DenominationHashP))); + sizeof(pk->h_key))); GNUNET_assert (NULL != req); - ctx = TEAH_handle_to_context (exchange); eh = TALER_EXCHANGE_curl_easy_get_ (csrh->url); if ( (NULL == eh) || (GNUNET_OK != @@ -259,7 +256,7 @@ TALER_EXCHANGE_csr_withdraw (struct TALER_EXCHANGE_Handle *exchange, return NULL; } json_decref (req); - csrh->job = GNUNET_CURL_job_add2 (ctx, + csrh->job = GNUNET_CURL_job_add2 (curl_ctx, eh, csrh->post_ctx.headers, &handle_csr_finished, @@ -270,8 +267,8 @@ TALER_EXCHANGE_csr_withdraw (struct TALER_EXCHANGE_Handle *exchange, void -TALER_EXCHANGE_csr_withdraw_cancel (struct - TALER_EXCHANGE_CsRWithdrawHandle *csrh) +TALER_EXCHANGE_csr_withdraw_cancel ( + struct TALER_EXCHANGE_CsRWithdrawHandle *csrh) { if (NULL != csrh->job) { |