[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[GNUnet-SVN] [taler-merchant] branch master updated: fix check-payment l
From: |
gnunet |
Subject: |
[GNUnet-SVN] [taler-merchant] branch master updated: fix check-payment logic without session_id, use proper error codes |
Date: |
Mon, 22 Jan 2018 13:45:20 +0100 |
This is an automated email from the git hooks/post-receive script.
dold pushed a commit to branch master
in repository merchant.
The following commit(s) were added to refs/heads/master by this push:
new 01ad0c0 fix check-payment logic without session_id, use proper error
codes
01ad0c0 is described below
commit 01ad0c0faf6c79e20a7c3914f9b95f7aa351eb8f
Author: Florian Dold <address@hidden>
AuthorDate: Mon Jan 22 13:45:16 2018 +0100
fix check-payment logic without session_id, use proper error codes
---
src/backend/taler-merchant-httpd_check-payment.c | 37 +++++++++++++++++++-----
1 file changed, 29 insertions(+), 8 deletions(-)
diff --git a/src/backend/taler-merchant-httpd_check-payment.c
b/src/backend/taler-merchant-httpd_check-payment.c
index 57eda8e..133471e 100644
--- a/src/backend/taler-merchant-httpd_check-payment.c
+++ b/src/backend/taler-merchant-httpd_check-payment.c
@@ -120,7 +120,7 @@ MH_handler_check_payment (struct TMH_RequestHandler *rh,
mi = TMH_lookup_instance (instance_str);
if (NULL == mi)
return TMH_RESPONSE_reply_bad_request (connection,
- TALER_EC_PAY_INSTANCE_UNKNOWN,
+
TALER_EC_CHECK_PAYMENT_INSTANCE_UNKNOWN,
"merchant instance unknown");
if (NULL == order_id)
@@ -185,6 +185,8 @@ MH_handler_check_payment (struct TMH_RequestHandler *rh,
GNUNET_assert (NULL != order_id);
+
+
qs = db->find_contract_terms (db->cls,
&contract_terms,
order_id,
@@ -197,15 +199,34 @@ MH_handler_check_payment (struct TMH_RequestHandler *rh,
/* Always report on hard error as well to enable diagnostics */
GNUNET_break (GNUNET_DB_STATUS_HARD_ERROR == qs);
return TMH_RESPONSE_reply_internal_error (connection,
- TALER_EC_PAY_DB_FETCH_PAY_ERROR,
- "db error to previous /pay data");
-
+
TALER_EC_CHECK_PAYMENT_DB_FETCH_CONTRACT_TERMS_ERROR,
+ "db error fetching contract
terms");
}
if (GNUNET_DB_STATUS_SUCCESS_NO_RESULTS == qs)
{
- return TMH_RESPONSE_reply_not_found (connection,
- TALER_EC_PAY_DB_STORE_PAY_ERROR,
- "Proposal not found");
+ qs = db->find_orders (db->cls,
+ &contract_terms,
+ order_id,
+ &mi->pubkey);
+ if (0 > qs)
+ {
+ /* single, read-only SQL statements should never cause
+ serialization problems */
+ GNUNET_break (GNUNET_DB_STATUS_SOFT_ERROR != qs);
+ /* Always report on hard error as well to enable diagnostics */
+ GNUNET_break (GNUNET_DB_STATUS_HARD_ERROR == qs);
+ return TMH_RESPONSE_reply_internal_error (connection,
+
TALER_EC_CHECK_PAYMENT_DB_FETCH_ORDER_ERROR,
+ "db error fetching order");
+ }
+ if (GNUNET_DB_STATUS_SUCCESS_NO_RESULTS == qs)
+ {
+ return TMH_RESPONSE_reply_not_found (connection,
+
TALER_EC_CHECK_PAYMENT_ORDER_ID_UNKNOWN,
+ "unknown order id");
+ }
+ /* Offer was not picked up yet, but we ensured that it exists */
+ goto do_pay;
}
if (GNUNET_OK !=
@@ -214,7 +235,7 @@ MH_handler_check_payment (struct TMH_RequestHandler *rh,
{
GNUNET_break (0);
return TMH_RESPONSE_reply_internal_error (connection,
-
TALER_EC_PAY_FAILED_COMPUTE_PROPOSAL_HASH,
+
TALER_EC_CHECK_PAYMENT_FAILED_COMPUTE_PROPOSAL_HASH,
"Failed to hash proposal");
}
--
To stop receiving notification emails like this one, please contact
address@hidden
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] [taler-merchant] branch master updated: fix check-payment logic without session_id, use proper error codes,
gnunet <=