commit ab66026ca00c3bf64cc2e71030359438c9af4348 parent ad4255f9d717259c28ad73e98e69371f93fa4fca Author: Christian Grothoff <christian@grothoff.org> Date: Sun, 11 Oct 2026 14:01:42 +0200 properly use problem_row_id in coin inconsistency table Diffstat:
12 files changed, 24 insertions(+), 20 deletions(-)
diff --git a/src/auditor/taler-auditor-httpd_get-monitoring-row-inconsistency.c b/src/auditor/taler-auditor-httpd_get-monitoring-row-inconsistency.c @@ -46,6 +46,8 @@ add_row_inconsistency ( obj = GNUNET_JSON_PACK ( GNUNET_JSON_pack_int64 ("row_id", serial_id), + GNUNET_JSON_pack_uint64 ("problem_row_id", + dc->problem_row_id), GNUNET_JSON_pack_string ("row_table", dc->row_table), @@ -89,15 +91,15 @@ TAH_get_monitoring_row_inconsistency ( NULL); } TAH_PARSE_REQUEST_LIMIT (connection, - "limit", - &limit); + "limit", + &limit); if (limit < 0) offset = TAH_SAFE_UINT64_MAX; else offset = 0; TAH_PARSE_SAFE_REQUEST_NUMBER (connection, - "offset", - &offset); + "offset", + &offset); { const char *ret_s = MHD_lookup_connection_value (connection, MHD_GET_ARGUMENT_KIND, diff --git a/src/auditor/taler-helper-auditor-aggregation.c b/src/auditor/taler-helper-auditor-aggregation.c @@ -287,7 +287,7 @@ report_row_inconsistency (const char *table, struct TALER_AUDITORDB_RowInconsistency ri = { .diagnostic = (char *) diagnostic, .row_table = (char *) table, - .row_id = rowid + .problem_row_id = rowid }; qs = TALER_AUDITORDB_insert_row_inconsistency ( @@ -483,7 +483,7 @@ check_transaction_history_for_deposit ( if (NULL != deposited) { struct TALER_AUDITORDB_RowInconsistency ri = { - .row_id = tl->serial_id, + .problem_row_id = tl->serial_id, .diagnostic = (char *) "multiple deposits of the same coin into the same contract detected", .row_table = (char *) "deposits" diff --git a/src/auditor/taler-helper-auditor-aml.c b/src/auditor/taler-helper-auditor-aml.c @@ -321,7 +321,7 @@ report_row (const char *table, const char *diagnostic) { struct TALER_AUDITORDB_RowInconsistency ri = { - .row_id = rowid, + .problem_row_id = rowid, .row_table = (char *) table, .diagnostic = (char *) diagnostic }; diff --git a/src/auditor/taler-helper-auditor-coins.c b/src/auditor/taler-helper-auditor-coins.c @@ -503,7 +503,7 @@ report_row_inconsistency (const char *table, enum GNUNET_DB_QueryStatus qs; struct TALER_AUDITORDB_RowInconsistency ri = { .row_table = (char *) table, - .row_id = rowid, + .problem_row_id = rowid, .diagnostic = (char *) diagnostic }; diff --git a/src/auditor/taler-helper-auditor-purses.c b/src/auditor/taler-helper-auditor-purses.c @@ -225,7 +225,7 @@ report_row_inconsistency (const char *table, struct TALER_AUDITORDB_RowInconsistency ri = { .diagnostic = (char *) diagnostic, .row_table = (char *) table, - .row_id = rowid + .problem_row_id = rowid }; qs = TALER_AUDITORDB_insert_row_inconsistency ( diff --git a/src/auditor/taler-helper-auditor-reserves.c b/src/auditor/taler-helper-auditor-reserves.c @@ -255,7 +255,7 @@ report_row_inconsistency (const char *table, struct TALER_AUDITORDB_RowInconsistency ri = { .diagnostic = (char *) diagnostic, .row_table = (char *) table, - .row_id = rowid + .problem_row_id = rowid }; qs = TALER_AUDITORDB_insert_row_inconsistency ( diff --git a/src/auditor/taler-helper-auditor-transfer.c b/src/auditor/taler-helper-auditor-transfer.c @@ -460,7 +460,7 @@ report_row (struct HoldContext *hc, const char *diagnostic) { struct TALER_AUDITORDB_RowInconsistency ri = { - .row_id = rowid, + .problem_row_id = rowid, .row_table = (char *) table, .diagnostic = (char *) diagnostic }; diff --git a/src/auditor/taler-helper-auditor-wire-credit.c b/src/auditor/taler-helper-auditor-wire-credit.c @@ -851,7 +851,7 @@ kycauth_in_cb (void *cls, GNUNET_CONTAINER_MULTIHASHMAPOPTION_UNIQUE_ONLY)) { struct TALER_AUDITORDB_RowInconsistency ri = { - .row_id = rowid, + .problem_row_id = rowid, .row_table = (char *) "kycauths_in", .diagnostic = (char *) "duplicate wire offset" }; @@ -995,7 +995,7 @@ reserve_in_cb (void *cls, GNUNET_CONTAINER_MULTIHASHMAPOPTION_UNIQUE_ONLY)) { struct TALER_AUDITORDB_RowInconsistency ri = { - .row_id = rowid, + .problem_row_id = rowid, .row_table = (char *) "reserves_in", .diagnostic = (char *) "duplicate wire offset" }; diff --git a/src/auditor/taler-helper-auditor-wire-debit.c b/src/auditor/taler-helper-auditor-wire-debit.c @@ -915,7 +915,7 @@ check_profit_drain (struct WireTransferOutInfo *roi) &master_sig)) { struct TALER_AUDITORDB_RowInconsistency ri = { - .row_id = roi->details.serial_id, + .problem_row_id = roi->details.serial_id, .row_table = (char *) "profit_drains", .diagnostic = (char *) "invalid signature" }; @@ -1594,7 +1594,7 @@ reserve_closed_cb ( closing_fee)) { struct TALER_AUDITORDB_RowInconsistency ri = { - .row_id = rowid, + .problem_row_id = rowid, .row_table = (char *) "reserves_closures", .diagnostic diff --git a/src/auditordb/insert_row_inconsistency.c b/src/auditordb/insert_row_inconsistency.c @@ -28,7 +28,7 @@ TALER_AUDITORDB_insert_row_inconsistency (struct struct GNUNET_PQ_QueryParam params[] = { GNUNET_PQ_query_param_string (dc->row_table), GNUNET_PQ_query_param_string (dc->diagnostic), - GNUNET_PQ_query_param_uint64 (&dc->row_id), + GNUNET_PQ_query_param_uint64 (&dc->problem_row_id), GNUNET_PQ_query_param_end }; diff --git a/src/auditordb/iterate_row_inconsistencies.c b/src/auditordb/iterate_row_inconsistencies.c @@ -72,12 +72,11 @@ row_inconsistency_cb (void *cls, for (unsigned int i = 0; i < num_results; i++) { - uint64_t serial_id; - struct TALER_AUDITORDB_RowInconsistency dc; struct GNUNET_PQ_ResultSpec rs[] = { - GNUNET_PQ_result_spec_uint64 ("row_id", &serial_id), + GNUNET_PQ_result_spec_uint64 ("row_id", &dc.row_id), + GNUNET_PQ_result_spec_uint64 ("problem_row_id", &dc.problem_row_id), GNUNET_PQ_result_spec_string ("row_table", &dc.row_table), GNUNET_PQ_result_spec_string ("diagnostic", &dc.diagnostic), @@ -102,7 +101,7 @@ row_inconsistency_cb (void *cls, rval = dcc->cb (dcc->cb_cls, - serial_id, + dc.row_id, &dc); GNUNET_PQ_cleanup_result (rs); if (GNUNET_OK != rval) @@ -141,6 +140,7 @@ TALER_AUDITORDB_iterate_row_inconsistencies ( "iterate_row_inconsistencies_inconsistency_select_desc", "SELECT" " row_id" + ",problem_row_id" ",row_table" ",diagnostic" ",suppressed" @@ -154,6 +154,7 @@ TALER_AUDITORDB_iterate_row_inconsistencies ( "iterate_row_inconsistencies_inconsistency_select_asc", "SELECT" " row_id" + ",problem_row_id" ",row_table" ",diagnostic" ",suppressed" diff --git a/src/include/auditordb_lib.h b/src/include/auditordb_lib.h @@ -161,6 +161,7 @@ struct TALER_AUDITORDB_CoinInconsistency struct TALER_AUDITORDB_RowInconsistency { uint64_t row_id; + uint64_t problem_row_id; char *row_table; char *diagnostic; bool suppressed;