diff options
author | Christian Grothoff <christian@grothoff.org> | 2016-05-31 15:12:08 +0200 |
---|---|---|
committer | Christian Grothoff <christian@grothoff.org> | 2016-05-31 15:12:08 +0200 |
commit | bc413f88c92d0f4b7daa9b8cd1007714d7e843e6 (patch) | |
tree | 886b54ded6a20c56e6a2df1755c792f93456f8b2 | |
parent | 70c5830407618aa03d006f1868133e5e86d5b96f (diff) |
handle wire transfer deadline conflict with execution time
-rw-r--r-- | src/backend/taler-merchant-httpd_pay.c | 13 |
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"); + } + } |