summaryrefslogtreecommitdiff
path: root/src/lib
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2022-05-30 19:31:49 +0200
committerChristian Grothoff <christian@grothoff.org>2022-05-30 19:31:49 +0200
commitd55b093de8d5a39d7796ca68a4990ee4e9669c16 (patch)
tree0692bf465a54d05a78cd63a2b992e1f3902834f5 /src/lib
parentab4aa4dcfd3477971b3fb0c81a4caffff953c145 (diff)
downloadexchange-d55b093de8d5a39d7796ca68a4990ee4e9669c16.tar.gz
exchange-d55b093de8d5a39d7796ca68a4990ee4e9669c16.tar.bz2
exchange-d55b093de8d5a39d7796ca68a4990ee4e9669c16.zip
-fix reserve history, include in tests
Diffstat (limited to 'src/lib')
-rw-r--r--src/lib/exchange_api_common.c5
-rw-r--r--src/lib/exchange_api_reserves_history.c35
2 files changed, 28 insertions, 12 deletions
diff --git a/src/lib/exchange_api_common.c b/src/lib/exchange_api_common.c
index 92bfee6e4..cfab9a305 100644
--- a/src/lib/exchange_api_common.c
+++ b/src/lib/exchange_api_common.c
@@ -476,8 +476,6 @@ parse_history (struct TALER_EXCHANGE_ReserveHistoryEntry *rh,
struct GNUNET_JSON_Specification history_spec[] = {
GNUNET_JSON_spec_fixed_auto ("reserve_sig",
&rh->details.history_details.reserve_sig),
- TALER_JSON_spec_amount_any ("history_fee",
- &rh->amount),
GNUNET_JSON_spec_timestamp ("request_timestamp",
&rh->details.history_details.request_timestamp),
GNUNET_JSON_spec_end ()
@@ -578,6 +576,9 @@ TALER_EXCHANGE_parse_reserve_history (
NULL, NULL))
{
GNUNET_break_op (0);
+ json_dumpf (transaction,
+ stderr,
+ JSON_INDENT (2));
return GNUNET_SYSERR;
}
rh->amount = amount;
diff --git a/src/lib/exchange_api_reserves_history.c b/src/lib/exchange_api_reserves_history.c
index 2925b0253..1d3891c2e 100644
--- a/src/lib/exchange_api_reserves_history.c
+++ b/src/lib/exchange_api_reserves_history.c
@@ -110,10 +110,6 @@ handle_reserves_history_ok (struct TALER_EXCHANGE_ReservesHistoryHandle *rsh,
struct GNUNET_JSON_Specification spec[] = {
TALER_JSON_spec_amount_any ("balance",
&rs.details.ok.balance),
- GNUNET_JSON_spec_bool ("kyc_passed",
- &rs.details.ok.kyc_ok),
- GNUNET_JSON_spec_bool ("kyc_required",
- &rs.details.ok.kyc_required),
GNUNET_JSON_spec_json ("history",
&history),
GNUNET_JSON_spec_end ()
@@ -197,6 +193,7 @@ handle_reserves_history_finished (void *cls,
handle_reserves_history_ok (rsh,
j))
{
+ GNUNET_break_op (0);
rs.hr.http_status = 0;
rs.hr.ec = TALER_EC_GENERIC_REPLY_MALFORMED;
}
@@ -221,6 +218,11 @@ handle_reserves_history_finished (void *cls,
rs.hr.ec = TALER_JSON_get_error_code (j);
rs.hr.hint = TALER_JSON_get_error_hint (j);
break;
+ case MHD_HTTP_CONFLICT:
+ /* Insufficient balance to inquire for reserve history */
+ rs.hr.ec = TALER_JSON_get_error_code (j);
+ rs.hr.hint = TALER_JSON_get_error_hint (j);
+ break;
case MHD_HTTP_INTERNAL_SERVER_ERROR:
/* Server had an internal issue; we should retry, but this API
leaves this to the application */
@@ -306,10 +308,22 @@ TALER_EXCHANGE_reserves_history (
return NULL;
}
keys = TALER_EXCHANGE_get_keys (exchange);
- GNUNET_assert (NULL != keys);
+ if (NULL == keys)
+ {
+ GNUNET_break (0);
+ GNUNET_free (rsh->url);
+ GNUNET_free (rsh);
+ return NULL;
+ }
gf = TALER_EXCHANGE_get_global_fee (keys,
rsh->ts);
- GNUNET_assert (NULL != gf);
+ if (NULL == gf)
+ {
+ GNUNET_break_op (0);
+ GNUNET_free (rsh->url);
+ GNUNET_free (rsh);
+ return NULL;
+ }
TALER_wallet_reserve_history_sign (rsh->ts,
&gf->fees.history,
reserve_priv,
@@ -336,10 +350,11 @@ TALER_EXCHANGE_reserves_history (
json_decref (history_obj);
}
ctx = TEAH_handle_to_context (exchange);
- rsh->job = GNUNET_CURL_job_add (ctx,
- eh,
- &handle_reserves_history_finished,
- rsh);
+ rsh->job = GNUNET_CURL_job_add2 (ctx,
+ eh,
+ rsh->post_ctx.headers,
+ &handle_reserves_history_finished,
+ rsh);
return rsh;
}