[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[taler-merchant] branch master updated: fix #6983: do not keep contract
From: |
gnunet |
Subject: |
[taler-merchant] branch master updated: fix #6983: do not keep contract terms across transactions |
Date: |
Sat, 07 Aug 2021 15:37:23 +0200 |
This is an automated email from the git hooks/post-receive script.
grothoff pushed a commit to branch master
in repository merchant.
The following commit(s) were added to refs/heads/master by this push:
new 8e703ec5 fix #6983: do not keep contract terms across transactions
8e703ec5 is described below
commit 8e703ec55501282f5fade998d8ce173f81f5fa49
Author: Christian Grothoff <christian@grothoff.org>
AuthorDate: Sat Aug 7 15:37:21 2021 +0200
fix #6983: do not keep contract terms across transactions
---
src/backend/taler-merchant-httpd_get-orders-ID.c | 28 +++++++++++++++++++-----
1 file changed, 22 insertions(+), 6 deletions(-)
diff --git a/src/backend/taler-merchant-httpd_get-orders-ID.c
b/src/backend/taler-merchant-httpd_get-orders-ID.c
index c679211f..b96f6ba0 100644
--- a/src/backend/taler-merchant-httpd_get-orders-ID.c
+++ b/src/backend/taler-merchant-httpd_get-orders-ID.c
@@ -190,6 +190,12 @@ suspend_god (struct GetOrderData *god)
GNUNET_log (GNUNET_ERROR_TYPE_INFO,
"Suspending GET /orders/%s\n",
god->order_id);
+ if (NULL != god->contract_terms)
+ {
+ json_decref (god->contract_terms);
+ god->fulfillment_url = NULL;
+ god->contract_terms = NULL;
+ }
GNUNET_assert (! god->suspended);
god->suspended = true;
GNUNET_CONTAINER_DLL_insert (god_head,
@@ -491,10 +497,12 @@ send_pay_request (struct GetOrderData *god,
struct GNUNET_TIME_Relative remaining;
remaining = GNUNET_TIME_absolute_get_remaining (god->sc.long_poll_timeout);
- if ( (0 != remaining.rel_value_us) &&
+ if ( (! GNUNET_TIME_relative_is_zero (remaining)) &&
(NULL == already_paid_order_id) )
{
/* long polling: do not queue a response, suspend connection instead */
+ GNUNET_log (GNUNET_ERROR_TYPE_INFO,
+ "Suspending request: long polling for payment\n");
suspend_god (god);
return MHD_YES;
}
@@ -679,7 +687,10 @@ god_cleanup (void *cls)
struct GetOrderData *god = cls;
if (NULL != god->contract_terms)
+ {
json_decref (god->contract_terms);
+ god->contract_terms = NULL;
+ }
GNUNET_free (god);
}
@@ -969,6 +980,8 @@ TMH_get_orders_ID (const struct TMH_RequestHandler *rh,
{
const char *public_reorder_url;
+ GNUNET_log (GNUNET_ERROR_TYPE_INFO,
+ "Neither claim token nor contract matched\n");
public_reorder_url = json_string_value (json_object_get (
god->contract_terms,
"public_reorder_url"));
@@ -1029,11 +1042,14 @@ TMH_get_orders_ID (const struct TMH_RequestHandler *rh,
GNUNET_JSON_pack_string ("public_reorder_url",
public_reorder_url));
}
+
+ GNUNET_log (GNUNET_ERROR_TYPE_INFO,
+ "Claim token or contract matched\n");
if (! god->claimed)
{
/* Order is unclaimed, no need to check for payments or even
refunds, simply always generate payment request */
- GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
+ GNUNET_log (GNUNET_ERROR_TYPE_INFO,
"Order unclaimed, sending pay request for order %s\n",
order_id);
return send_pay_request (god,
@@ -1080,7 +1096,7 @@ TMH_get_orders_ID (const struct TMH_RequestHandler *rh,
{
MHD_RESULT ret;
- GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
+ GNUNET_log (GNUNET_ERROR_TYPE_INFO,
"Sending pay request for order %s (already paid: %s)\n",
order_id,
already_paid_order_id);
@@ -1115,7 +1131,7 @@ TMH_get_orders_ID (const struct TMH_RequestHandler *rh,
GNUNET_break (GNUNET_DB_STATUS_SUCCESS_ONE_RESULT == qs);
if (! paid)
{
- GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
+ GNUNET_log (GNUNET_ERROR_TYPE_INFO,
"Order claimed but unpaid, sending pay request for order
%s\n",
order_id);
return send_pay_request (god,
@@ -1154,7 +1170,7 @@ TMH_get_orders_ID (const struct TMH_RequestHandler *rh,
struct GNUNET_TIME_Relative remaining;
remaining = GNUNET_TIME_absolute_get_remaining (god->sc.long_poll_timeout);
- if (0 != remaining.rel_value_us)
+ if (! GNUNET_TIME_relative_is_zero (remaining))
{
/* yes, indeed suspend */
if (god->sc.awaiting_refund)
@@ -1162,7 +1178,7 @@ TMH_get_orders_ID (const struct TMH_RequestHandler *rh,
"Awaiting refund exceeding %s\n",
TALER_amount2s (&god->sc.refund_expected));
if (god->sc.awaiting_refund_obtained)
- GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
+ GNUNET_log (GNUNET_ERROR_TYPE_INFO,
"Awaiting pending refunds\n");
suspend_god (god);
return MHD_YES;
--
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [taler-merchant] branch master updated: fix #6983: do not keep contract terms across transactions,
gnunet <=