[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[taler-donau] branch master updated: cleanup
From: |
gnunet |
Subject: |
[taler-donau] branch master updated: cleanup |
Date: |
Tue, 02 Jan 2024 16:31:33 +0100 |
This is an automated email from the git hooks/post-receive script.
johannes-casaburi pushed a commit to branch master
in repository donau.
The following commit(s) were added to refs/heads/master by this push:
new 7af7bab cleanup
7af7bab is described below
commit 7af7babbcfab8e7a4ab5ff09b4f27a3512d711fc
Author: Casaburi Johannes <johannes.casaburi@students.bfh.ch>
AuthorDate: Tue Jan 2 16:31:19 2024 +0100
cleanup
---
src/donau/donau-httpd.c | 15 --
src/donau/donau-httpd_keys.h | 1 -
src/lib/donau_api_transfers_get.c | 399 --------------------------------------
3 files changed, 415 deletions(-)
diff --git a/src/donau/donau-httpd.c b/src/donau/donau-httpd.c
index 58bf0d5..9cc8138 100644
--- a/src/donau/donau-httpd.c
+++ b/src/donau/donau-httpd.c
@@ -90,21 +90,6 @@ struct TALER_MasterPublicKeyP DH_master_public_key;
*/
struct DONAUDB_Plugin *DH_plugin;
-/**
- * Absolute STEFAN parameter.
- */
-struct TALER_Amount DH_stefan_abs;
-
-/**
- * Logarithmic STEFAN parameter.
- */
-struct TALER_Amount DH_stefan_log;
-
-/**
- * Linear STEFAN parameter.
- */
-struct TALER_Amount DH_stefan_lin;
-
/**
* Default number of fractional digits to render
* amounts with.
diff --git a/src/donau/donau-httpd_keys.h b/src/donau/donau-httpd_keys.h
index ac24a56..2922123 100644
--- a/src/donau/donau-httpd_keys.h
+++ b/src/donau/donau-httpd_keys.h
@@ -54,4 +54,3 @@ struct DH_DonationUnitKey
struct DONAUDB_DonationUnitKeyMetaData meta;
};
-
diff --git a/src/lib/donau_api_transfers_get.c
b/src/lib/donau_api_transfers_get.c
deleted file mode 100644
index e639c9b..0000000
--- a/src/lib/donau_api_transfers_get.c
+++ /dev/null
@@ -1,399 +0,0 @@
-/*
- This file is part of TALER
- Copyright (C) 2014-2023 Taler Systems SA
-
- TALER is free software; you can redistribute it and/or modify it under the
- terms of the GNU General Public License as published by the Free Software
- Foundation; either version 3, or (at your option) any later version.
-
- TALER is distributed in the hope that it will be useful, but WITHOUT ANY
- WARRANTY; without even the implied warranty of CHARITYABILITY or FITNESS FOR
- A PARTICULAR PURPOSE. See the GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License along with
- TALER; see the file COPYING. If not, see
- <http://www.gnu.org/licenses/>
-*/
-/**
- * @file lib/donau_api_transfers_get.c
- * @brief Implementation of the GET /transfers/ request
- * @author Christian Grothoff
- */
-#include "taler/platform.h"
-#include <jansson.h>
-#include <microhttpd.h> /* just for HTTP status codes */
-#include <gnunet/gnunet_util_lib.h>
-#include <gnunet/gnunet_curl_lib.h>
-#include "taler_donau_service.h"
-#include "taler/taler_json_lib.h"
-#include "donau_api_handle.h"
-#include "taler_signatures.h"
-#include "donau_api_curl_defaults.h"
-
-
-/**
- * @brief A /transfers/ GET Handle
- */
-struct DONAU_TransfersGetHandle
-{
-
- /**
- * The keys of the donau this request handle will use
- */
- struct DONAU_Keys *keys;
-
- /**
- * The url for this request.
- */
- char *url;
-
- /**
- * Handle for the request.
- */
- struct GNUNET_CURL_Job *job;
-
- /**
- * Function to call with the result.
- */
- DONAU_TransfersGetCallback cb;
-
- /**
- * Closure for @a cb.
- */
- void *cb_cls;
-
-};
-
-
-/**
- * We got a #MHD_HTTP_OK response for the /transfers/ request.
- * Check that the response is well-formed and if it is, call the
- * callback. If not, return an error code.
- *
- * This code is very similar to
- * charity_api_track_transfer.c::check_transfers_get_response_ok.
- * Any changes should likely be reflected there as well.
- *
- * @param wdh handle to the operation
- * @param json response we got
- * @return #GNUNET_OK if we are done and all is well,
- * #GNUNET_SYSERR if the response was bogus
- */
-static enum GNUNET_GenericReturnValue
-check_transfers_get_response_ok (
- struct DONAU_TransfersGetHandle *wdh,
- const json_t *json)
-{
- const json_t *details_j;
- struct TALER_Amount total_expected;
- struct DONAU_CharityPublicKeyP charity_pub;
- struct DONAU_TransfersGetResponse tgr = {
- .hr.reply = json,
- .hr.http_status = MHD_HTTP_OK
- };
- struct DONAU_TransferData *td
- = &tgr.details.ok.td;
- struct GNUNET_JSON_Specification spec[] = {
- TALER_JSON_spec_amount_any ("total",
- &td->total_amount),
- TALER_JSON_spec_amount_any ("wire_fee",
- &td->wire_fee),
- GNUNET_JSON_spec_fixed_auto ("charity_pub",
- &charity_pub),
- GNUNET_JSON_spec_fixed_auto ("h_payto",
- &td->h_payto),
- GNUNET_JSON_spec_timestamp ("execution_time",
- &td->execution_time),
- GNUNET_JSON_spec_array_const ("deposits",
- &details_j),
- GNUNET_JSON_spec_fixed_auto ("donau_sig",
- &td->donau_sig),
- GNUNET_JSON_spec_fixed_auto ("donau_pub",
- &td->donau_pub),
- GNUNET_JSON_spec_end ()
- };
-
- if (GNUNET_OK !=
- GNUNET_JSON_parse (json,
- spec,
- NULL, NULL))
- {
- GNUNET_break_op (0);
- return GNUNET_SYSERR;
- }
- if (GNUNET_OK !=
- TALER_amount_set_zero (td->total_amount.currency,
- &total_expected))
- {
- GNUNET_break_op (0);
- return GNUNET_SYSERR;
- }
- if (GNUNET_OK !=
- DONAU_test_signing_key (
- wdh->keys,
- &td->donau_pub))
- {
- GNUNET_break_op (0);
- return GNUNET_SYSERR;
- }
- td->details_length = json_array_size (details_j);
- {
- struct GNUNET_HashContext *hash_context;
- struct TALER_TrackTransferDetails *details;
-
- details = GNUNET_new_array (td->details_length,
- struct TALER_TrackTransferDetails);
- td->details = details;
- hash_context = GNUNET_CRYPTO_hash_context_start ();
- for (unsigned int i = 0; i<td->details_length; i++)
- {
- struct TALER_TrackTransferDetails *detail = &details[i];
- struct json_t *detail_j = json_array_get (details_j, i);
- struct GNUNET_JSON_Specification spec_detail[] = {
- GNUNET_JSON_spec_fixed_auto ("h_contract_terms",
- &detail->h_contract_terms),
- GNUNET_JSON_spec_fixed_auto ("coin_pub", &detail->coin_pub),
- TALER_JSON_spec_amount_any ("deposit_value", &detail->coin_value),
- TALER_JSON_spec_amount_any ("deposit_fee", &detail->coin_fee),
- GNUNET_JSON_spec_end ()
- };
-
- if ( (GNUNET_OK !=
- GNUNET_JSON_parse (detail_j,
- spec_detail,
- NULL, NULL)) ||
- (GNUNET_OK !=
- TALER_amount_cmp_currency (&total_expected,
- &detail->coin_value)) ||
- (GNUNET_OK !=
- TALER_amount_cmp_currency (&total_expected,
- &detail->coin_fee)) ||
- (0 >
- TALER_amount_add (&total_expected,
- &total_expected,
- &detail->coin_value)) ||
- (0 >
- TALER_amount_subtract (&total_expected,
- &total_expected,
- &detail->coin_fee)) )
- {
- GNUNET_break_op (0);
- GNUNET_CRYPTO_hash_context_abort (hash_context);
- GNUNET_free (details);
- return GNUNET_SYSERR;
- }
- /* build up big hash for signature checking later */
- TALER_donau_online_wire_deposit_append (
- hash_context,
- &detail->h_contract_terms,
- td->execution_time,
- &detail->coin_pub,
- &detail->coin_value,
- &detail->coin_fee);
- }
- /* Check signature */
- {
- struct GNUNET_HashCode h_details;
-
- GNUNET_CRYPTO_hash_context_finish (hash_context,
- &h_details);
- if (GNUNET_OK !=
- TALER_donau_online_wire_deposit_verify (
- &td->total_amount,
- &td->wire_fee,
- &charity_pub,
- &td->h_payto,
- &h_details,
- &td->donau_pub,
- &td->donau_sig))
- {
- GNUNET_break_op (0);
- GNUNET_free (details);
- return GNUNET_SYSERR;
- }
- }
-
- if (0 >
- TALER_amount_subtract (&total_expected,
- &total_expected,
- &td->wire_fee))
- {
- GNUNET_break_op (0);
- GNUNET_free (details);
- return GNUNET_SYSERR;
- }
- if (0 !=
- TALER_amount_cmp (&total_expected,
- &td->total_amount))
- {
- GNUNET_break_op (0);
- GNUNET_free (details);
- return GNUNET_SYSERR;
- }
- wdh->cb (wdh->cb_cls,
- &tgr);
- GNUNET_free (details);
- }
- return GNUNET_OK;
-}
-
-
-/**
- * Function called when we're done processing the
- * HTTP /transfers/ request.
- *
- * @param cls the `struct DONAU_TransfersGetHandle`
- * @param response_code HTTP response code, 0 on error
- * @param response parsed JSON result, NULL on error
- */
-static void
-handle_transfers_get_finished (void *cls,
- long response_code,
- const void *response)
-{
- struct DONAU_TransfersGetHandle *wdh = cls;
- const json_t *j = response;
- struct DONAU_TransfersGetResponse tgr = {
- .hr.reply = j,
- .hr.http_status = (unsigned int) response_code
- };
-
- wdh->job = NULL;
- switch (response_code)
- {
- case 0:
- tgr.hr.ec = TALER_EC_GENERIC_INVALID_RESPONSE;
- break;
- case MHD_HTTP_OK:
- if (GNUNET_OK ==
- check_transfers_get_response_ok (wdh,
- j))
- {
- DONAU_transfers_get_cancel (wdh);
- return;
- }
- GNUNET_break_op (0);
- tgr.hr.ec = TALER_EC_GENERIC_REPLY_MALFORMED;
- tgr.hr.http_status = 0;
- break;
- case MHD_HTTP_BAD_REQUEST:
- /* This should never happen, either us or the donau is buggy
- (or API version conflict); just pass JSON reply to the application */
- tgr.hr.ec = TALER_JSON_get_error_code (j);
- tgr.hr.hint = TALER_JSON_get_error_hint (j);
- break;
- case MHD_HTTP_FORBIDDEN:
- /* Nothing really to verify, donau says one of the signatures is
- invalid; as we checked them, this should never happen, we
- should pass the JSON reply to the application */
- tgr.hr.ec = TALER_JSON_get_error_code (j);
- tgr.hr.hint = TALER_JSON_get_error_hint (j);
- break;
- case MHD_HTTP_NOT_FOUND:
- /* Donau does not know about transaction;
- we should pass the reply to the application */
- tgr.hr.ec = TALER_JSON_get_error_code (j);
- tgr.hr.hint = TALER_JSON_get_error_hint (j);
- break;
- case MHD_HTTP_INTERNAL_SERVER_ERROR:
- /* Server had an internal issue; we should retry, but this API
- leaves this to the application */
- tgr.hr.ec = TALER_JSON_get_error_code (j);
- tgr.hr.hint = TALER_JSON_get_error_hint (j);
- break;
- default:
- /* unexpected response code */
- GNUNET_break_op (0);
- tgr.hr.ec = TALER_JSON_get_error_code (j);
- tgr.hr.hint = TALER_JSON_get_error_hint (j);
- GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
- "Unexpected response code %u/%d for transfers get\n",
- (unsigned int) response_code,
- (int) tgr.hr.ec);
- break;
- }
- wdh->cb (wdh->cb_cls,
- &tgr);
- DONAU_transfers_get_cancel (wdh);
-}
-
-
-struct DONAU_TransfersGetHandle *
-DONAU_transfers_get (
- struct GNUNET_CURL_Context *ctx,
- const char *url,
- struct DONAU_Keys *keys,
- const struct TALER_WireTransferIdentifierRawP *wtid,
- DONAU_TransfersGetCallback cb,
- void *cb_cls)
-{
- struct DONAU_TransfersGetHandle *wdh;
- CURL *eh;
- char arg_str[sizeof (struct TALER_WireTransferIdentifierRawP) * 2 + 32];
-
- wdh = GNUNET_new (struct DONAU_TransfersGetHandle);
- wdh->cb = cb;
- wdh->cb_cls = cb_cls;
-
- {
- char wtid_str[sizeof (struct TALER_WireTransferIdentifierRawP) * 2];
- char *end;
-
- end = GNUNET_STRINGS_data_to_string (wtid,
- sizeof (struct
-
TALER_WireTransferIdentifierRawP),
- wtid_str,
- sizeof (wtid_str));
- *end = '\0';
- GNUNET_snprintf (arg_str,
- sizeof (arg_str),
- "transfers/%s",
- wtid_str);
- }
- wdh->url = TALER_url_join (url,
- arg_str,
- NULL);
- if (NULL == wdh->url)
- {
- GNUNET_free (wdh);
- return NULL;
- }
- eh = DONAU_curl_easy_get_ (wdh->url);
- if (NULL == eh)
- {
- GNUNET_break (0);
- GNUNET_free (wdh->url);
- GNUNET_free (wdh);
- return NULL;
- }
- wdh->keys = DONAU_keys_incref (keys);
- wdh->job = GNUNET_CURL_job_add_with_ct_json (ctx,
- eh,
- &handle_transfers_get_finished,
- wdh);
- return wdh;
-}
-
-
-/**
- * Cancel wire deposits request. This function cannot be used on a request
- * handle if a response is already served for it.
- *
- * @param wdh the wire deposits request handle
- */
-void
-DONAU_transfers_get_cancel (
- struct DONAU_TransfersGetHandle *wdh)
-{
- if (NULL != wdh->job)
- {
- GNUNET_CURL_job_cancel (wdh->job);
- wdh->job = NULL;
- }
- GNUNET_free (wdh->url);
- DONAU_keys_decref (wdh->keys);
- GNUNET_free (wdh);
-}
-
-
-/* end of donau_api_transfers_get.c */
--
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.
- [taler-donau] branch master updated: cleanup, gnunet, 2024/01/01
- [taler-donau] branch master updated: cleanup, gnunet, 2024/01/02
- [taler-donau] branch master updated: cleanup, gnunet, 2024/01/02
- [taler-donau] branch master updated: cleanup, gnunet, 2024/01/02
- [taler-donau] branch master updated: cleanup, gnunet, 2024/01/02
- [taler-donau] branch master updated: cleanup,
gnunet <=
- [taler-donau] branch master updated: cleanup, gnunet, 2024/01/02
- [taler-donau] branch master updated: cleanup, gnunet, 2024/01/02
- [taler-donau] branch master updated: cleanup, gnunet, 2024/01/05