merchant

Merchant backend to process payments, run by merchants
Log | Files | Refs | Submodules | README | LICENSE

commit 075d09d93c05e7a0a8963d478d32f14dae6bb98e
parent 41afb315362492bcf0dc81776442e3cbd1202199
Author: Christian Grothoff <christian@grothoff.org>
Date:   Mon, 18 Jan 2021 11:31:26 +0100

postgres_insert_pickup must NOT start a transaction, transaction is already part of caller

Diffstat:
Msrc/backend/taler-merchant-httpd_post-tips-ID-pickup.c | 6+++---
Msrc/backenddb/plugin_merchantdb_postgres.c | 44--------------------------------------------
2 files changed, 3 insertions(+), 47 deletions(-)

diff --git a/src/backend/taler-merchant-httpd_post-tips-ID-pickup.c b/src/backend/taler-merchant-httpd_post-tips-ID-pickup.c @@ -800,11 +800,11 @@ RETRY: } { struct GNUNET_CRYPTO_RsaSignature *sigs[GNUNET_NZL (pc->planchets_length)]; + memset (sigs, 0, - sizeof (struct GNUNET_CRYPTO_RsaSignature *) * GNUNET_NZL ( - pc->planchets_length)); - + sizeof (struct GNUNET_CRYPTO_RsaSignature *) + * GNUNET_NZL (pc->planchets_length)); qs = TMH_db->lookup_pickup (TMH_db->cls, hc->instance->settings.id, &pc->tip_id, diff --git a/src/backenddb/plugin_merchantdb_postgres.c b/src/backenddb/plugin_merchantdb_postgres.c @@ -5870,19 +5870,6 @@ postgres_insert_pickup (void *cls, { struct PostgresClosure *pg = cls; enum GNUNET_DB_QueryStatus qs; - unsigned int retries = 0; - - check_connection (pg); -RETRY: - if (MAX_RETRIES < ++retries) - return GNUNET_DB_STATUS_SOFT_ERROR; - if (GNUNET_OK != - postgres_start (pg, - "insert pickup")) - { - GNUNET_break (0); - return GNUNET_DB_STATUS_HARD_ERROR; - } { struct GNUNET_PQ_QueryParam params[] = { @@ -5898,13 +5885,7 @@ RETRY: "insert_pickup", params); if (0 > qs) - { - GNUNET_break (GNUNET_DB_STATUS_SOFT_ERROR == qs); - postgres_rollback (pg); - if (GNUNET_DB_STATUS_SOFT_ERROR == qs) - goto RETRY; return qs; - } } { @@ -5919,13 +5900,7 @@ RETRY: "update_picked_up_tip", params); if (0 > qs) - { - GNUNET_break (GNUNET_DB_STATUS_SOFT_ERROR == qs); - postgres_rollback (pg); - if (GNUNET_DB_STATUS_SOFT_ERROR == qs) - goto RETRY; return qs; - } } { uint64_t reserve_serial; @@ -5950,13 +5925,7 @@ RETRY: params, rs); if (0 > qs) - { - GNUNET_break (GNUNET_DB_STATUS_SOFT_ERROR == qs); - postgres_rollback (pg); - if (GNUNET_DB_STATUS_SOFT_ERROR == qs) - goto RETRY; return qs; - } } if (0 >= TALER_amount_add (&reserve_picked_up, @@ -5964,7 +5933,6 @@ RETRY: total_requested)) { GNUNET_break (0); - postgres_rollback (pg); return GNUNET_DB_STATUS_HARD_ERROR; } @@ -5980,21 +5948,9 @@ RETRY: "update_picked_up_reserve", params); if (0 > qs) - { - GNUNET_break (GNUNET_DB_STATUS_SOFT_ERROR == qs); - postgres_rollback (pg); - if (GNUNET_DB_STATUS_SOFT_ERROR == qs) - goto RETRY; return qs; - } } } - qs = postgres_commit (pg); - if (GNUNET_DB_STATUS_SUCCESS_NO_RESULTS == qs) - return GNUNET_DB_STATUS_SUCCESS_ONE_RESULT; - if (GNUNET_DB_STATUS_SOFT_ERROR == qs) - goto RETRY; - GNUNET_break (GNUNET_DB_STATUS_HARD_ERROR != qs); return qs; }