merchant

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

commit ae04bbd57f689fdaf4c2a67fdbfa07bf9c7326da
parent f2bcc3eb672e5ab8a0f838bb34f5fe3a8565f58e
Author: Christian Grothoff <grothoff@gnunet.org>
Date:   Wed,  8 Apr 2026 17:37:46 +0200

make instance name, and only instance name, case-insensitive

Diffstat:
Msrc/backend/taler-merchant-httpd.c | 14+++++++++-----
Msrc/backend/taler-merchant-httpd_post-management-instances.c | 2+-
Msrc/testing/test_merchant_kyc.sh | 2+-
3 files changed, 11 insertions(+), 7 deletions(-)

diff --git a/src/backend/taler-merchant-httpd.c b/src/backend/taler-merchant-httpd.c @@ -338,16 +338,20 @@ struct TMH_MerchantInstance * TMH_lookup_instance (const char *instance_id) { struct GNUNET_HashCode h_instance; + char *id; if (NULL == instance_id) - instance_id = "admin"; - GNUNET_CRYPTO_hash (instance_id, - strlen (instance_id), + id = GNUNET_strdup ("admin"); + else + id = GNUNET_STRINGS_utf8_tolower (instance_id); + GNUNET_CRYPTO_hash (id, + strlen (id), &h_instance); GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Looking for by-id key %s of '%s' in hashmap\n", GNUNET_h2s (&h_instance), - instance_id); + id); + GNUNET_free (id); /* We're fine if that returns NULL, the calling routine knows how to handle that */ return GNUNET_CONTAINER_multihashmap_get (TMH_by_id_map, @@ -836,7 +840,7 @@ add_instance_cb (void *cls, mi = GNUNET_new (struct TMH_MerchantInstance); mi->settings = *is; mi->auth = *ias; - mi->settings.id = GNUNET_strdup (mi->settings.id); + mi->settings.id = GNUNET_STRINGS_utf8_tolower (mi->settings.id); mi->settings.name = GNUNET_strdup (mi->settings.name); if (NULL != mi->settings.email) mi->settings.email = GNUNET_strdup (mi->settings.email); diff --git a/src/backend/taler-merchant-httpd_post-management-instances.c b/src/backend/taler-merchant-httpd_post-management-instances.c @@ -462,7 +462,7 @@ post_instances (const struct TMH_RequestHandler *rh, mi->settings = is; mi->settings.address = json_incref (mi->settings.address); mi->settings.jurisdiction = json_incref (mi->settings.jurisdiction); - mi->settings.id = GNUNET_strdup (is.id); + mi->settings.id = GNUNET_STRINGS_utf8_tolower (is.id); mi->settings.name = GNUNET_strdup (is.name); if (NULL != is.email) mi->settings.email = GNUNET_strdup (is.email); diff --git a/src/testing/test_merchant_kyc.sh b/src/testing/test_merchant_kyc.sh @@ -191,7 +191,7 @@ STATUS=$(curl -H "Accept: text/plain" \ if [ "$STATUS" != "200" ] then - exit_fail "Expected 200. got: $STATUS" + exit_fail "Expected 200 for text/plain. got: $STATUS" fi # cat "$LAST_RESPONSE"