summaryrefslogtreecommitdiff
path: root/src/backend/taler-merchant-httpd_get-orders-ID.c
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2020-08-12 21:58:23 +0200
committerChristian Grothoff <christian@grothoff.org>2020-08-12 21:58:23 +0200
commit7815ccb8c2cc74d44eb214e0c1f14833c5638b45 (patch)
treeff5cd8e8d3d1752a6d9b94b74f2747e7f1786f3f /src/backend/taler-merchant-httpd_get-orders-ID.c
parent2db1e3e46be39c464db392be47dc954c9840a7d5 (diff)
downloadmerchant-7815ccb8c2cc74d44eb214e0c1f14833c5638b45.tar.gz
merchant-7815ccb8c2cc74d44eb214e0c1f14833c5638b45.tar.bz2
merchant-7815ccb8c2cc74d44eb214e0c1f14833c5638b45.zip
allow claim token match if we have a claimed but unpaid contract
Diffstat (limited to 'src/backend/taler-merchant-httpd_get-orders-ID.c')
-rw-r--r--src/backend/taler-merchant-httpd_get-orders-ID.c13
1 files 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
index 5bc58213..25e96310 100644
--- 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;