diff options
Diffstat (limited to 'src/backend/taler-merchant-httpd_get-orders-ID.c')
-rw-r--r-- | src/backend/taler-merchant-httpd_get-orders-ID.c | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/src/backend/taler-merchant-httpd_get-orders-ID.c b/src/backend/taler-merchant-httpd_get-orders-ID.c index 430a314e..29a906c6 100644 --- a/src/backend/taler-merchant-httpd_get-orders-ID.c +++ b/src/backend/taler-merchant-httpd_get-orders-ID.c @@ -914,7 +914,7 @@ TMH_get_orders_ID (const struct TMH_RequestHandler *rh, { god->claimed = true; } - else if (! token_match) + else if (! token_match) // FIXME: This 'if' seems unnecessary, 'token_match' would seem always 'false' here. { struct TALER_ClaimTokenP db_claim_token; struct GNUNET_HashCode unused; @@ -939,6 +939,7 @@ TMH_get_orders_ID (const struct TMH_RequestHandler *rh, TALER_EC_GENERIC_DB_FETCH_FAILED, "lookup_order"); } + // FIXME: simplify: contract_available is always FALSE here! if ( (GNUNET_DB_STATUS_SUCCESS_NO_RESULTS == qs) && (! contract_available) ) { @@ -950,6 +951,9 @@ TMH_get_orders_ID (const struct TMH_RequestHandler *rh, TALER_EC_MERCHANT_GENERIC_ORDER_UNKNOWN, order_id); } + // FIXME: given that contract_available is always + // false and thus qs always non-zero, the RVAL simplifies + // to 'false', which should already be the LVAL. god->claimed = ( (GNUNET_DB_STATUS_SUCCESS_NO_RESULTS == qs) || (contract_available) ); token_match = (GNUNET_DB_STATUS_SUCCESS_ONE_RESULT == qs) && @@ -979,6 +983,11 @@ TMH_get_orders_ID (const struct TMH_RequestHandler *rh, contract_available, contract_match, god->claimed); + /* FIXME: this should be strengthend: two conditions + (claim_token_provided && ! token_match) || + (h_contract_provided && ! contract_match) + in separate branches with more specific error + replies (about token or contract) */ if ( (claim_token_provided || h_contract_provided) && (! (token_match || contract_match)) ) { @@ -994,6 +1003,10 @@ TMH_get_orders_ID (const struct TMH_RequestHandler *rh, { const char *public_reorder_url; + /* FIXME: taking this branch seems wrong for unclaimed + orders without claim token! Also seems to contradict + the spec, as there 'authOk' is defined to include the + || "! ord.requireClaimToken" part! */ GNUNET_log (GNUNET_ERROR_TYPE_INFO, "Neither claim token nor contract matched\n"); public_reorder_url = json_string_value (json_object_get ( |