summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2021-01-18 11:34:55 +0100
committerChristian Grothoff <christian@grothoff.org>2021-01-18 11:34:55 +0100
commitd2c40f4e19350efe134aab9be0f8be8f6a5d7bf8 (patch)
treef686306d2c5751f16e4b20c9e386306a988b64f8 /src
parent075d09d93c05e7a0a8963d478d32f14dae6bb98e (diff)
downloadmerchant-d2c40f4e19350efe134aab9be0f8be8f6a5d7bf8.tar.gz
merchant-d2c40f4e19350efe134aab9be0f8be8f6a5d7bf8.tar.bz2
merchant-d2c40f4e19350efe134aab9be0f8be8f6a5d7bf8.zip
insert_transfer_details is running its own transaction, no need to create an outer transaction for it
Diffstat (limited to 'src')
-rw-r--r--src/backend/taler-merchant-httpd_private-post-transfers.c60
1 files changed, 13 insertions, 47 deletions
diff --git a/src/backend/taler-merchant-httpd_private-post-transfers.c b/src/backend/taler-merchant-httpd_private-post-transfers.c
index dda8bf11..80998e85 100644
--- a/src/backend/taler-merchant-httpd_private-post-transfers.c
+++ b/src/backend/taler-merchant-httpd_private-post-transfers.c
@@ -459,61 +459,27 @@ wire_transfer_cb (void *cls,
return;
}
- for (unsigned int r = 0; r<MAX_RETRIES; r++)
- {
- TMH_db->preflight (TMH_db->cls);
- if (GNUNET_OK !=
- TMH_db->start (TMH_db->cls,
- "insert transaction details"))
- {
- GNUNET_break (0);
- resume_transfer_with_error (ptc,
- MHD_HTTP_INTERNAL_SERVER_ERROR,
- TALER_EC_GENERIC_DB_START_FAILED,
- NULL);
- return;
- }
- /* Ok, exchange answer is acceptable, store it */
- qs = TMH_db->insert_transfer_details (TMH_db->cls,
- instance_id,
- ptc->exchange_url,
- ptc->payto_uri,
- &ptc->wtid,
- td);
- if (0 > qs)
- goto retry;
- qs = TMH_db->commit (TMH_db->cls);
-retry:
- if (GNUNET_DB_STATUS_HARD_ERROR == qs)
- {
- TMH_db->rollback (TMH_db->cls);
- /* Always report on hard error as well to enable diagnostics */
- GNUNET_break (GNUNET_DB_STATUS_HARD_ERROR == qs);
- resume_transfer_with_error (
- ptc,
- MHD_HTTP_INTERNAL_SERVER_ERROR,
- TALER_EC_GENERIC_DB_COMMIT_FAILED,
- NULL);
- return;
- }
- if (0 <= qs)
- break; /* success! */
- /* soft failure, rollback and try again */
- TMH_db->rollback (TMH_db->cls);
- }
- if (GNUNET_DB_STATUS_SOFT_ERROR == qs)
+ TMH_db->preflight (TMH_db->cls);
+ /* Ok, exchange answer is acceptable, store it */
+ qs = TMH_db->insert_transfer_details (TMH_db->cls,
+ instance_id,
+ ptc->exchange_url,
+ ptc->payto_uri,
+ &ptc->wtid,
+ td);
+ if (0 > qs)
{
- TMH_db->rollback (TMH_db->cls);
- /* Always report on hard error as well to enable diagnostics */
+ /* Always report on DB error as well to enable diagnostics */
GNUNET_break (GNUNET_DB_STATUS_HARD_ERROR == qs);
resume_transfer_with_error (
ptc,
MHD_HTTP_INTERNAL_SERVER_ERROR,
- TALER_EC_GENERIC_DB_SOFT_FAILURE,
+ (GNUNET_DB_STATUS_HARD_ERROR == qs)
+ ? TALER_EC_GENERIC_DB_COMMIT_FAILED
+ : TALER_EC_GENERIC_DB_SOFT_FAILURE,
NULL);
return;
}
-
/* resume processing, main function will build the response */
resume_transfer_with_response (ptc,
0,