summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2021-10-31 15:32:20 +0100
committerChristian Grothoff <christian@grothoff.org>2021-10-31 15:32:20 +0100
commitde8e0907aadecf4f97c0eb8230217751f3fd44a1 (patch)
treeb23ef19a0828b82f51e003559c0b59e7693f45ac /src
parent1d5edc6882588e10db9cc18c0d0daeb7fedbc5b4 (diff)
downloadexchange-de8e0907aadecf4f97c0eb8230217751f3fd44a1.tar.gz
exchange-de8e0907aadecf4f97c0eb8230217751f3fd44a1.tar.bz2
exchange-de8e0907aadecf4f97c0eb8230217751f3fd44a1.zip
DB test passes again
Diffstat (limited to 'src')
-rw-r--r--src/exchangedb/exchange-0001.sql2
-rw-r--r--src/exchangedb/plugin_exchangedb_postgres.c35
-rw-r--r--src/exchangedb/test_exchangedb.c21
-rw-r--r--src/include/taler_exchangedb_plugin.h4
4 files changed, 30 insertions, 32 deletions
diff --git a/src/exchangedb/exchange-0001.sql b/src/exchangedb/exchange-0001.sql
index 6de2af742..87ac555ba 100644
--- a/src/exchangedb/exchange-0001.sql
+++ b/src/exchangedb/exchange-0001.sql
@@ -380,7 +380,7 @@ CREATE TABLE IF NOT EXISTS deposits
,tiny BOOLEAN NOT NULL DEFAULT FALSE
,done BOOLEAN NOT NULL DEFAULT FALSE
,extension_blocked BOOLEAN NOT NULL DEFAULT FALSE
- ,extension_options VARCHAR NOT NULL
+ ,extension_options VARCHAR
,UNIQUE (known_coin_id, merchant_pub, h_contract_terms)
);
COMMENT ON TABLE deposits
diff --git a/src/exchangedb/plugin_exchangedb_postgres.c b/src/exchangedb/plugin_exchangedb_postgres.c
index ed63be87c..017145e61 100644
--- a/src/exchangedb/plugin_exchangedb_postgres.c
+++ b/src/exchangedb/plugin_exchangedb_postgres.c
@@ -3904,7 +3904,7 @@ inselect_account_kyc_status (
};
uint8_t ok8 = 0;
struct GNUNET_PQ_ResultSpec rs[] = {
- GNUNET_PQ_result_spec_uint64 ("payment_target_uuid",
+ GNUNET_PQ_result_spec_uint64 ("wire_target_serial_id",
&kyc->payment_target_uuid),
GNUNET_PQ_result_spec_auto_from_type ("kyc_ok",
&ok8),
@@ -5257,8 +5257,8 @@ postgres_mark_deposit_done (void *cls,
*/
static enum GNUNET_DB_QueryStatus
postgres_get_ready_deposit (void *cls,
- uint32_t start_shard_row,
- uint32_t end_shard_row,
+ uint64_t start_shard_row,
+ uint64_t end_shard_row,
TALER_EXCHANGEDB_DepositIterator deposit_cb,
void *deposit_cb_cls)
{
@@ -5266,8 +5266,8 @@ postgres_get_ready_deposit (void *cls,
struct GNUNET_TIME_Absolute now = GNUNET_TIME_absolute_get ();
struct GNUNET_PQ_QueryParam params[] = {
TALER_PQ_query_param_absolute_time (&now),
- GNUNET_PQ_query_param_uint32 (&start_shard_row),
- GNUNET_PQ_query_param_uint32 (&end_shard_row),
+ GNUNET_PQ_query_param_uint64 (&start_shard_row),
+ GNUNET_PQ_query_param_uint64 (&end_shard_row),
GNUNET_PQ_query_param_end
};
struct TALER_Amount amount_with_fee;
@@ -5301,7 +5301,7 @@ postgres_get_ready_deposit (void *cls,
(void) GNUNET_TIME_round_abs (&now);
GNUNET_assert (start_shard_row < end_shard_row);
- GNUNET_assert (end_shard_row <= INT32_MAX);
+ GNUNET_assert (end_shard_row <= INT64_MAX);
GNUNET_log (GNUNET_ERROR_TYPE_INFO,
"Finding ready deposits by deadline %s (%llu)\n",
GNUNET_STRINGS_absolute_time_to_string (now),
@@ -5706,27 +5706,25 @@ postgres_ensure_coin_known (void *cls,
* @param deposit deposit to compute shard for
* @return shard number
*/
-static uint32_t
+static uint64_t
compute_shard (const struct TALER_EXCHANGEDB_Deposit *deposit)
{
- uint32_t res;
+ uint64_t res;
GNUNET_assert (GNUNET_YES ==
GNUNET_CRYPTO_kdf (&res,
sizeof (res),
- &deposit->wire_salt,
- sizeof (deposit->wire_salt),
&deposit->merchant_pub,
sizeof (deposit->merchant_pub),
deposit->receiver_wire_account,
strlen (deposit->receiver_wire_account),
NULL, 0));
/* interpret hash result as NBO for platform independence,
- convert to HBO and map to [0..2^31-1] range */
+ convert to HBO and map to [0..2^63-1] range */
res = ntohl (res);
- if (res > INT32_MAX)
- res += INT32_MIN;
- GNUNET_assert (res <= INT32_MAX);
+ if (res > INT64_MAX)
+ res += INT64_MIN;
+ GNUNET_assert (res <= INT64_MAX);
return res;
}
@@ -5758,7 +5756,7 @@ postgres_insert_deposit (void *cls,
return qs;
}
{
- uint32_t shard = compute_shard (deposit);
+ uint64_t shard = compute_shard (deposit);
struct GNUNET_PQ_QueryParam params[] = {
GNUNET_PQ_query_param_auto_from_type (&deposit->coin.coin_pub),
TALER_PQ_query_param_amount (&deposit->amount_with_fee),
@@ -5771,11 +5769,11 @@ postgres_insert_deposit (void *cls,
GNUNET_PQ_query_param_uint64 (&kyc.payment_target_uuid),
GNUNET_PQ_query_param_auto_from_type (&deposit->csig),
TALER_PQ_query_param_absolute_time (&exchange_timestamp),
- GNUNET_PQ_query_param_uint32 (&shard),
+ GNUNET_PQ_query_param_uint64 (&shard),
GNUNET_PQ_query_param_end
};
- GNUNET_assert (shard <= INT32_MAX);
+ GNUNET_assert (shard <= INT64_MAX);
GNUNET_log (GNUNET_ERROR_TYPE_INFO,
"Inserting deposit to be executed at %s (%llu/%llu)\n",
GNUNET_STRINGS_absolute_time_to_string (deposit->wire_deadline),
@@ -7274,6 +7272,7 @@ postgres_lookup_transfer_by_deposit (
kyc->ok = true;
return qs;
}
+ qs = GNUNET_DB_STATUS_SUCCESS_NO_RESULTS;
}
if (0 > qs)
return qs;
@@ -11361,7 +11360,7 @@ postgres_begin_revolving_shard (void *cls,
{
struct PostgresClosure *pg = cls;
- GNUNET_assert (shard_limit <= 1U + (uint32_t) INT32_MAX);
+ GNUNET_assert (shard_limit <= 1U + (uint32_t) INT_MAX);
GNUNET_assert (shard_limit > 0);
GNUNET_assert (shard_size > 0);
for (unsigned int retries = 0; retries<3; retries++)
diff --git a/src/exchangedb/test_exchangedb.c b/src/exchangedb/test_exchangedb.c
index 4dd762fa7..817dcbbca 100644
--- a/src/exchangedb/test_exchangedb.c
+++ b/src/exchangedb/test_exchangedb.c
@@ -1472,7 +1472,6 @@ run (void *cls)
enum GNUNET_DB_QueryStatus qs;
struct GNUNET_TIME_Absolute now;
struct TALER_WireSalt salt;
- struct TALER_MerchantWireHash h_wire;
dkp = NULL;
rh = NULL;
@@ -1803,7 +1802,7 @@ run (void *cls)
TALER_merchant_wire_signature_hash (
"payto://iban/DE67830654080004822650?receiver-name=Test",
&deposit.wire_salt,
- &h_wire);
+ &h_wire_wt);
deposit.amount_with_fee = value;
deposit.deposit_fee = fee_deposit;
@@ -1855,6 +1854,13 @@ run (void *cls)
NULL));
FAILIF (1 != auditor_row_cnt);
result = 9;
+ sleep (2); /* give deposit time to be ready */
+ FAILIF (GNUNET_DB_STATUS_SUCCESS_ONE_RESULT !=
+ plugin->get_ready_deposit (plugin->cls,
+ 0,
+ INT64_MAX,
+ &deposit_cb,
+ &deposit));
FAILIF (GNUNET_DB_STATUS_SUCCESS_ONE_RESULT !=
plugin->iterate_matching_deposits (plugin->cls,
wire_target_row,
@@ -1862,13 +1868,6 @@ run (void *cls)
&matching_deposit_cb,
&deposit,
2));
- sleep (2); /* give deposit time to be ready */
- FAILIF (GNUNET_DB_STATUS_SUCCESS_ONE_RESULT !=
- plugin->get_ready_deposit (plugin->cls,
- 0,
- INT32_MAX,
- &deposit_cb,
- &deposit));
FAILIF (GNUNET_DB_STATUS_SUCCESS_NO_RESULTS !=
plugin->commit (plugin->cls));
FAILIF (GNUNET_OK !=
@@ -1880,14 +1879,14 @@ run (void *cls)
FAILIF (GNUNET_DB_STATUS_SUCCESS_NO_RESULTS !=
plugin->get_ready_deposit (plugin->cls,
0,
- INT32_MAX,
+ INT64_MAX,
&deposit_cb,
&deposit));
plugin->rollback (plugin->cls);
FAILIF (GNUNET_DB_STATUS_SUCCESS_ONE_RESULT !=
plugin->get_ready_deposit (plugin->cls,
0,
- INT32_MAX,
+ INT64_MAX,
&deposit_cb,
&deposit));
FAILIF (GNUNET_OK !=
diff --git a/src/include/taler_exchangedb_plugin.h b/src/include/taler_exchangedb_plugin.h
index 1355615cb..aa67092ee 100644
--- a/src/include/taler_exchangedb_plugin.h
+++ b/src/include/taler_exchangedb_plugin.h
@@ -2742,8 +2742,8 @@ struct TALER_EXCHANGEDB_Plugin
*/
enum GNUNET_DB_QueryStatus
(*get_ready_deposit)(void *cls,
- uint32_t start_shard_row,
- uint32_t end_shard_row,
+ uint64_t start_shard_row,
+ uint64_t end_shard_row,
TALER_EXCHANGEDB_DepositIterator deposit_cb,
void *deposit_cb_cls);