summaryrefslogtreecommitdiff
path: root/src/backend/taler-merchant-httpd_private-post-transfers.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/backend/taler-merchant-httpd_private-post-transfers.c')
-rw-r--r--src/backend/taler-merchant-httpd_private-post-transfers.c22
1 files changed, 19 insertions, 3 deletions
diff --git a/src/backend/taler-merchant-httpd_private-post-transfers.c b/src/backend/taler-merchant-httpd_private-post-transfers.c
index aafe4742..52f12a16 100644
--- a/src/backend/taler-merchant-httpd_private-post-transfers.c
+++ b/src/backend/taler-merchant-httpd_private-post-transfers.c
@@ -386,7 +386,6 @@ check_wire_fee (struct PostTransfersContext *ptc,
char *wire_method;
wire_method = TALER_payto_get_method (ptc->payto_uri);
- TMH_db->preflight (TMH_db->cls);
qs = TMH_db->lookup_wire_fee (TMH_db->cls,
&ptc->master_pub,
wire_method,
@@ -626,7 +625,6 @@ verify_exchange_claim_cb (void *cls,
ptc->current_detail = ttd;
/* Set the coin as "never seen" before. */
ptc->check_transfer_result = GNUNET_NO;
- TMH_db->preflight (TMH_db->cls);
qs = TMH_db->lookup_deposits_by_contract_and_coin (
TMH_db->cls,
ptc->hc->instance->settings.id,
@@ -863,7 +861,7 @@ static void
download (struct PostTransfersContext *ptc)
{
ptc->downloaded = true;
- GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
+ GNUNET_log (GNUNET_ERROR_TYPE_INFO,
"Suspending POST /private/transfers handling while working with exchange\n");
MHD_suspend_connection (ptc->connection);
GNUNET_CONTAINER_DLL_insert (ptc_head,
@@ -1178,6 +1176,24 @@ TMH_private_post_transfers (const struct TMH_RequestHandler *rh,
break;
}
+ qs = TMH_db->commit (TMH_db->cls);
+ switch (qs)
+ {
+ case GNUNET_DB_STATUS_SOFT_ERROR:
+ TMH_db->rollback (TMH_db->cls);
+ continue;
+ case GNUNET_DB_STATUS_HARD_ERROR:
+ GNUNET_break (0);
+ TMH_db->rollback (TMH_db->cls);
+ return TALER_MHD_reply_with_error (connection,
+ MHD_HTTP_INTERNAL_SERVER_ERROR,
+ TALER_EC_GENERIC_DB_COMMIT_FAILED,
+ NULL);
+ case GNUNET_DB_STATUS_SUCCESS_NO_RESULTS:
+ case GNUNET_DB_STATUS_SUCCESS_ONE_RESULT:
+ break;
+ }
+
deposit_sums = json_array ();
GNUNET_assert (NULL != deposit_sums);
GNUNET_CONTAINER_multihashmap_iterate (map,