summaryrefslogtreecommitdiff
path: root/src/backend/taler-merchant-httpd_post-orders-ID-claim.c
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2021-11-19 11:43:40 +0100
committerChristian Grothoff <christian@grothoff.org>2021-11-19 11:43:40 +0100
commit61c6cb27442aed0b45cf31f8a69183b1c39e9a13 (patch)
tree0bd4be7427bc0fcff3dcad24ab55480c93a03a24 /src/backend/taler-merchant-httpd_post-orders-ID-claim.c
parent39e6ebbc169a250b6ae11928f5ce58696f09f19f (diff)
downloadmerchant-61c6cb27442aed0b45cf31f8a69183b1c39e9a13.tar.gz
merchant-61c6cb27442aed0b45cf31f8a69183b1c39e9a13.tar.bz2
merchant-61c6cb27442aed0b45cf31f8a69183b1c39e9a13.zip
-fix misc bugs
Diffstat (limited to 'src/backend/taler-merchant-httpd_post-orders-ID-claim.c')
-rw-r--r--src/backend/taler-merchant-httpd_post-orders-ID-claim.c22
1 files changed, 19 insertions, 3 deletions
diff --git a/src/backend/taler-merchant-httpd_post-orders-ID-claim.c b/src/backend/taler-merchant-httpd_post-orders-ID-claim.c
index 17475c9a..089933ea 100644
--- a/src/backend/taler-merchant-httpd_post-orders-ID-claim.c
+++ b/src/backend/taler-merchant-httpd_post-orders-ID-claim.c
@@ -62,7 +62,6 @@ claim_order (const char *instance_id,
struct TALER_ClaimTokenP order_ct;
enum GNUNET_DB_QueryStatus qs;
uint64_t order_serial;
- struct GNUNET_TIME_Absolute timestamp;
if (GNUNET_OK !=
TMH_db->start (TMH_db->cls,
@@ -90,8 +89,6 @@ claim_order (const char *instance_id,
struct GNUNET_JSON_Specification spec[] = {
GNUNET_JSON_spec_string ("nonce",
&stored_nonce),
- TALER_JSON_spec_absolute_time ("timestamp",
- &timestamp),
GNUNET_JSON_spec_end ()
};
@@ -126,6 +123,12 @@ claim_order (const char *instance_id,
{
struct GNUNET_HashCode unused;
+ struct GNUNET_TIME_Absolute timestamp;
+ struct GNUNET_JSON_Specification spec[] = {
+ TALER_JSON_spec_absolute_time ("timestamp",
+ &timestamp),
+ GNUNET_JSON_spec_end ()
+ };
/* see if we have this order in our table of unclaimed orders */
qs = TMH_db->lookup_order (TMH_db->cls,
@@ -140,6 +143,19 @@ claim_order (const char *instance_id,
return qs;
}
GNUNET_assert (NULL != *contract_terms);
+ if (GNUNET_OK !=
+ GNUNET_JSON_parse (*contract_terms,
+ spec,
+ NULL,
+ NULL))
+ {
+ /* this should not be possible: contract_terms should always
+ have a timestamp! */
+ GNUNET_break (0);
+ TMH_db->rollback (TMH_db->cls);
+ return GNUNET_DB_STATUS_HARD_ERROR;
+ }
+
GNUNET_assert (0 ==
json_object_set_new (*contract_terms,
"nonce",