commit 129a6573fef7b34b2bfd433fd8f13be714826ab2
parent 1e9a9faea9025f6b4fa81393146c40cf7f3740ed
Author: bohdan-potuzhnyi <bohdan.potuzhnyi@gmail.com>
Date: Wed, 16 Jul 2025 18:04:22 +0200
Merge branch 'dev/bohdan-potuzhnyi/donau-integration' of ssh://git.taler.net/merchant into dev/bohdan-potuzhnyi/donau-integration
Diffstat:
1 file changed, 7 insertions(+), 38 deletions(-)
diff --git a/src/backend/taler-merchant-httpd_private-post-orders.c b/src/backend/taler-merchant-httpd_private-post-orders.c
@@ -3354,9 +3354,11 @@ add_donau_url (void *cls,
int64_t current_year,
const json_t *donau_keys_json)
{
- json_t *json_instances = cls;
- GNUNET_assert (0 == json_array_append_new (json_instances, json_string (
- donau_url)));
+ struct TALER_MERCHANT_ContractOutput *output = cls;
+
+ GNUNET_array_append (output->details.donation_receipt.donau_urls,
+ output->details.donation_receipt.donau_urls_len,
+ GNUNET_strdup (donau_url));
}
@@ -3364,19 +3366,17 @@ static void
parse_donau_instances (struct OrderContext *oc,
struct TALER_MERCHANT_ContractOutput *output)
{
- json_t *json_donau_instances = json_array ();
enum GNUNET_DB_QueryStatus qs;
/* Invoke the database call, accumulating URLs in a JSON array */
/* FIXME: select_donau_instanceS */
qs = TMH_db->select_donau_instance (TMH_db->cls,
&add_donau_url,
- json_donau_instances);
+ oc);
- /* REVIEW: If no */
+ /* REVIEW: If no switch */
if (qs < 0)
{
- json_decref (json_donau_instances);
GNUNET_break_op (0);
reply_with_error (oc,
MHD_HTTP_INTERNAL_SERVER_ERROR,
@@ -3384,37 +3384,6 @@ parse_donau_instances (struct OrderContext *oc,
"donau url parsing db call");
return;
}
-
- /* Convert the JSON array of strings into a C array of URLs */
- {
- size_t num_instances = json_array_size (json_donau_instances);
- if (num_instances > 0)
- {
- /* FIXME: use the GNUNET_NEW_ARRAY */
- output->details.donation_receipt.donau_urls = malloc (num_instances
- * sizeof(char *));
- if (! output->details.donation_receipt.donau_urls)
- {
- json_decref (json_donau_instances);
- GNUNET_break_op (0);
- reply_with_error (oc,
- MHD_HTTP_INTERNAL_SERVER_ERROR,
- TALER_EC_GENERIC_CLIENT_INTERNAL_ERROR,
- "donau url parsing allocating memory");
- return;
- }
- output->details.donation_receipt.donau_urls_len = num_instances;
-
- for (size_t i = 0; i < num_instances; i++)
- {
- const json_t *url_json = json_array_get (json_donau_instances, i);
- const char *url_str = json_string_value (url_json);
- output->details.donation_receipt.donau_urls[i] = GNUNET_strdup (
- url_str);
- }
- }
- }
- json_decref (json_donau_instances);
}