merchant

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

commit c11ddaa003fd043e2f18216923cbbe1c0da09b39
parent db832779fab541abe13183885632a370242fdda9
Author: Christian Grothoff <christian@grothoff.org>
Date:   Fri,  9 Oct 2026 23:05:49 +0200

fix instance handling in GET /management/instances//kyc

Diffstat:
Msrc/backend/taler-merchant-httpd_get-private-kyc.c | 21++++++++++++++++++++-
1 file changed, 20 insertions(+), 1 deletion(-)

diff --git a/src/backend/taler-merchant-httpd_get-private-kyc.c b/src/backend/taler-merchant-httpd_get-private-kyc.c @@ -566,7 +566,7 @@ TMH_kyc_keys_changed (const char *exchange_url) json_array_foreach (kc->kycs_data, off, entry) { const char *url = json_string_value (json_object_get (entry, - "exchange_url")); + "exchange_url")); if ( (NULL != url) && (0 == strcmp (url, exchange_url)) ) @@ -1448,6 +1448,25 @@ phase_database_kyc_check (struct KycContext *kc) from previous runs first */ GNUNET_break (0 == json_array_clear (kc->kycs_data)); + /* On the /management/ path, the request was dispatched to the + admin instance, but we must query the instance in @e mi. */ + qs = TALER_MERCHANTDB_set_instance (TMH_db, + kc->mi->settings.id); + if (GNUNET_DB_STATUS_SUCCESS_ONE_RESULT != qs) + { + GNUNET_break (0); + finish_request (kc, + TALER_MHD_reply_with_error ( + kc->connection, + (GNUNET_DB_STATUS_SUCCESS_NO_RESULTS == qs) + ? MHD_HTTP_NOT_FOUND + : MHD_HTTP_INTERNAL_SERVER_ERROR, + (GNUNET_DB_STATUS_SUCCESS_NO_RESULTS == qs) + ? TALER_EC_MERCHANT_GENERIC_INSTANCE_UNKNOWN + : TALER_EC_GENERIC_DB_SETUP_FAILED, + kc->mi->settings.id)); + return; + } kc->in_db = true; qs = TALER_MERCHANTDB_iterate_kyc_statuses ( TMH_db,