diff options
Diffstat (limited to 'src/backend/taler-merchant-httpd_private-post-transfers.c')
-rw-r--r-- | src/backend/taler-merchant-httpd_private-post-transfers.c | 22 |
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, |