gnunet-svn
[Top][All Lists]
Advanced

[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.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]