summaryrefslogtreecommitdiff
path: root/src/include
diff options
context:
space:
mode:
authorFlorian Dold <florian.dold@gmail.com>2020-01-21 16:13:22 +0100
committerFlorian Dold <florian.dold@gmail.com>2020-01-21 16:13:22 +0100
commit975d9c9d15e5b6694639e55c7d73d4d86fc48cab (patch)
treee27b0f93168b774bdb7bd3c416dd627fa8562977 /src/include
parent4c8f7799da3c5d4779b5e39d8a280e3e54588470 (diff)
downloadexchange-975d9c9d15e5b6694639e55c7d73d4d86fc48cab.tar.gz
exchange-975d9c9d15e5b6694639e55c7d73d4d86fc48cab.tar.bz2
exchange-975d9c9d15e5b6694639e55c7d73d4d86fc48cab.zip
make sure request_uid is actually unique
Allowing duplicate request_uid for different transfer details means that somebody might eventually rely on this, which is bad. They should really be unique, it makes tracing easier.
Diffstat (limited to 'src/include')
-rw-r--r--src/include/taler_error_codes.h6
-rw-r--r--src/include/taler_fakebank_lib.h9
2 files changed, 12 insertions, 3 deletions
diff --git a/src/include/taler_error_codes.h b/src/include/taler_error_codes.h
index 3833e7a4e..ac7f92888 100644
--- a/src/include/taler_error_codes.h
+++ b/src/include/taler_error_codes.h
@@ -1736,6 +1736,12 @@ enum TALER_ErrorCode
TALER_EC_BANK_SOFT_EXCEPTION = 5400,
/**
+ * The request UID for a request to transfer funds has already been
+ * used, but with different details for the transfer.
+ */
+ TALER_EC_BANK_TRANSFER_REQUEST_UID_REUSED = 5500,
+
+ /**
* The sync service failed to access its database. This response is
* provided with HTTP status code MHD_HTTP_INTERNAL_SERVER_ERROR.
*/
diff --git a/src/include/taler_fakebank_lib.h b/src/include/taler_fakebank_lib.h
index 278d0a00d..9324bdce1 100644
--- a/src/include/taler_fakebank_lib.h
+++ b/src/include/taler_fakebank_lib.h
@@ -73,9 +73,11 @@ TALER_FAKEBANK_check_empty (struct TALER_FAKEBANK_Handle *h);
* @param subject wire transfer subject to use
* @param exchange_base_url exchange URL
* @param request_uid unique number to make the request unique, or NULL to create one
- * @return serial_id of the transfer
+ * @param[out] ret_row_id pointer to store the row ID of this transaction
+ * @return GNUNET_YES if the transfer was successful,
+ * GNUNET_SYSERR if the request_uid was reused for a different transfer
*/
-uint64_t
+int
TALER_FAKEBANK_make_transfer (struct TALER_FAKEBANK_Handle *h,
const char *debit_account,
const char *credit_account,
@@ -83,7 +85,8 @@ TALER_FAKEBANK_make_transfer (struct TALER_FAKEBANK_Handle *h,
const struct
TALER_WireTransferIdentifierRawP *subject,
const char *exchange_base_url,
- const struct GNUNET_HashCode *request_uid);
+ const struct GNUNET_HashCode *request_uid,
+ uint64_t *ret_row_id);
/**