summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2016-05-31 15:12:08 +0200
committerChristian Grothoff <christian@grothoff.org>2016-05-31 15:12:08 +0200
commitbc413f88c92d0f4b7daa9b8cd1007714d7e843e6 (patch)
tree886b54ded6a20c56e6a2df1755c792f93456f8b2
parent70c5830407618aa03d006f1868133e5e86d5b96f (diff)
downloadmerchant-bc413f88c92d0f4b7daa9b8cd1007714d7e843e6.tar.gz
merchant-bc413f88c92d0f4b7daa9b8cd1007714d7e843e6.tar.bz2
merchant-bc413f88c92d0f4b7daa9b8cd1007714d7e843e6.zip
handle wire transfer deadline conflict with execution time
-rw-r--r--src/backend/taler-merchant-httpd_pay.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/backend/taler-merchant-httpd_pay.c b/src/backend/taler-merchant-httpd_pay.c
index 1ab5a114..8a32732d 100644
--- a/src/backend/taler-merchant-httpd_pay.c
+++ b/src/backend/taler-merchant-httpd_pay.c
@@ -812,6 +812,11 @@ MH_handler_pay (struct TMH_RequestHandler *rh,
{
pc->wire_transfer_deadline = GNUNET_TIME_absolute_add (pc->timestamp,
wire_transfer_delay);
+ if (pc->wire_transfer_deadline.abs_value_us < pc->refund_deadline.abs_value_us)
+ {
+ /* Refund value very large, delay wire transfer accordingly */
+ pc->wire_transfer_deadline = pc->refund_deadline;
+ }
}
else
{
@@ -830,6 +835,14 @@ MH_handler_pay (struct TMH_RequestHandler *rh,
GNUNET_break (0);
return (GNUNET_NO == res) ? MHD_YES : MHD_NO;
}
+ if (pc->wire_transfer_deadline.abs_value_us < pc->refund_deadline.abs_value_us)
+ {
+ GNUNET_break (0);
+ json_decref (root);
+ return TMH_RESPONSE_reply_external_error (connection,
+ "refund deadline after wire transfer deadline");
+ }
+
}