commit 7815ccb8c2cc74d44eb214e0c1f14833c5638b45
parent 2db1e3e46be39c464db392be47dc954c9840a7d5
Author: Christian Grothoff <christian@grothoff.org>
Date: Wed, 12 Aug 2020 21:58:23 +0200
allow claim token match if we have a claimed but unpaid contract
Diffstat:
1 file changed, 9 insertions(+), 4 deletions(-)
diff --git a/src/backend/taler-merchant-httpd_get-orders-ID.c b/src/backend/taler-merchant-httpd_get-orders-ID.c
@@ -913,6 +913,7 @@ TMH_get_orders_ID (const struct TMH_RequestHandler *rh,
struct GetOrderData *god = hc->ctx;
const char *order_id = hc->infix;
enum GNUNET_DB_QueryStatus qs;
+ bool contract_match = false;
if (NULL == god)
{
@@ -1066,9 +1067,12 @@ TMH_get_orders_ID (const struct TMH_RequestHandler *rh,
TALER_EC_INTERNAL_LOGIC_ERROR,
"Could not hash contract terms");
}
- if (0 !=
- GNUNET_memcmp (&h,
- &god->h_contract_terms))
+ contract_match = (0 ==
+ GNUNET_memcmp (&h,
+ &god->h_contract_terms));
+ if ( (GNUNET_NO ==
+ GNUNET_is_zero (&god->h_contract_terms)) &&
+ (! contract_match) )
{
GNUNET_break_op (0);
return TALER_MHD_reply_with_error (connection,
@@ -1078,7 +1082,8 @@ TMH_get_orders_ID (const struct TMH_RequestHandler *rh,
}
}
- if (GNUNET_DB_STATUS_SUCCESS_NO_RESULTS == qs)
+ if ( (GNUNET_DB_STATUS_SUCCESS_NO_RESULTS == qs) ||
+ (! contract_match) )
{
struct TALER_ClaimTokenP db_claim_token;