gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[taler-exchange] branch master updated: clean up response generation cod


From: gnunet
Subject: [taler-exchange] branch master updated: clean up response generation code
Date: Fri, 27 Mar 2020 13:11:51 +0100

This is an automated email from the git hooks/post-receive script.

grothoff pushed a commit to branch master
in repository exchange.

The following commit(s) were added to refs/heads/master by this push:
     new a2bfd9f6 clean up response generation code
a2bfd9f6 is described below

commit a2bfd9f6b55fc8eeafa21c2856dc71ed1de8969a
Author: Christian Grothoff <address@hidden>
AuthorDate: Fri Mar 27 13:11:48 2020 +0100

    clean up response generation code
---
 src/exchange/taler-exchange-httpd_responses.c | 194 ++++++++++++++------------
 1 file changed, 103 insertions(+), 91 deletions(-)

diff --git a/src/exchange/taler-exchange-httpd_responses.c 
b/src/exchange/taler-exchange-httpd_responses.c
index cd03ba76..199b73f1 100644
--- a/src/exchange/taler-exchange-httpd_responses.c
+++ b/src/exchange/taler-exchange-httpd_responses.c
@@ -59,23 +59,24 @@ TEH_RESPONSE_compile_transaction_history (
     {
     case TALER_EXCHANGEDB_TT_DEPOSIT:
       {
-        struct TALER_DepositRequestPS dr;
         const struct TALER_EXCHANGEDB_DepositListEntry *deposit =
           pos->details.deposit;
+        struct TALER_DepositRequestPS dr = {
+          .purpose.purpose = htonl (TALER_SIGNATURE_WALLET_COIN_DEPOSIT),
+          .purpose.size = htonl (sizeof (dr)),
+          .h_contract_terms = deposit->h_contract_terms,
+          .h_wire = deposit->h_wire,
+          .timestamp = GNUNET_TIME_absolute_hton (deposit->timestamp),
+          .refund_deadline = GNUNET_TIME_absolute_hton (
+            deposit->refund_deadline),
+          .merchant = deposit->merchant_pub,
+          .coin_pub = *coin_pub
+        };
 
-        dr.purpose.purpose = htonl (TALER_SIGNATURE_WALLET_COIN_DEPOSIT);
-        dr.purpose.size = htonl (sizeof (struct TALER_DepositRequestPS));
-        dr.h_contract_terms = deposit->h_contract_terms;
-        dr.h_wire = deposit->h_wire;
-        dr.timestamp = GNUNET_TIME_absolute_hton (deposit->timestamp);
-        dr.refund_deadline = GNUNET_TIME_absolute_hton (
-          deposit->refund_deadline);
         TALER_amount_hton (&dr.amount_with_fee,
                            &deposit->amount_with_fee);
         TALER_amount_hton (&dr.deposit_fee,
                            &deposit->deposit_fee);
-        dr.merchant = deposit->merchant_pub;
-        dr.coin_pub = *coin_pub;
 #if ENABLE_SANITY_CHECKS
         /* internal sanity check before we hand out a bogus sig... */
         if (GNUNET_OK !=
@@ -126,19 +127,19 @@ TEH_RESPONSE_compile_transaction_history (
       }
     case TALER_EXCHANGEDB_TT_MELT:
       {
-        struct TALER_RefreshMeltCoinAffirmationPS ms;
         const struct TALER_EXCHANGEDB_MeltListEntry *melt =
           pos->details.melt;
+        struct TALER_RefreshMeltCoinAffirmationPS ms = {
+          .purpose.purpose = htonl (TALER_SIGNATURE_WALLET_COIN_MELT),
+          .purpose.size = htonl (sizeof (ms)),
+          .rc = melt->rc,
+          .coin_pub = *coin_pub
+        };
 
-        ms.purpose.purpose = htonl (TALER_SIGNATURE_WALLET_COIN_MELT);
-        ms.purpose.size = htonl (sizeof (struct
-                                         TALER_RefreshMeltCoinAffirmationPS));
-        ms.rc = melt->rc;
         TALER_amount_hton (&ms.amount_with_fee,
                            &melt->amount_with_fee);
         TALER_amount_hton (&ms.melt_fee,
                            &melt->melt_fee);
-        ms.coin_pub = *coin_pub;
 #if ENABLE_SANITY_CHECKS
         /* internal sanity check before we hand out a bogus sig... */
         if (GNUNET_OK !=
@@ -175,26 +176,18 @@ TEH_RESPONSE_compile_transaction_history (
       break;
     case TALER_EXCHANGEDB_TT_REFUND:
       {
-        struct TALER_RefundRequestPS rr;
         const struct TALER_EXCHANGEDB_RefundListEntry *refund =
           pos->details.refund;
         struct TALER_Amount value;
+        struct TALER_RefundRequestPS rr = {
+          .purpose.purpose = htonl (TALER_SIGNATURE_MERCHANT_REFUND),
+          .purpose.size = htonl (sizeof (rr)),
+          .h_contract_terms = refund->h_contract_terms,
+          .coin_pub = *coin_pub,
+          .merchant = refund->merchant_pub,
+          .rtransaction_id = GNUNET_htonll (refund->rtransaction_id)
+        };
 
-        if (GNUNET_OK !=
-            TALER_amount_subtract (&value,
-                                   &refund->refund_amount,
-                                   &refund->refund_fee))
-        {
-          GNUNET_break (0);
-          json_decref (history);
-          return NULL;
-        }
-        rr.purpose.purpose = htonl (TALER_SIGNATURE_MERCHANT_REFUND);
-        rr.purpose.size = htonl (sizeof (struct TALER_RefundRequestPS));
-        rr.h_contract_terms = refund->h_contract_terms;
-        rr.coin_pub = *coin_pub;
-        rr.merchant = refund->merchant_pub;
-        rr.rtransaction_id = GNUNET_htonll (refund->rtransaction_id);
         TALER_amount_hton (&rr.refund_amount,
                            &refund->refund_amount);
         TALER_amount_hton (&rr.refund_fee,
@@ -212,6 +205,15 @@ TEH_RESPONSE_compile_transaction_history (
           return NULL;
         }
 #endif
+        if (GNUNET_OK !=
+            TALER_amount_subtract (&value,
+                                   &refund->refund_amount,
+                                   &refund->refund_fee))
+        {
+          GNUNET_break (0);
+          json_decref (history);
+          return NULL;
+        }
         if (0 !=
             json_array_append_new (history,
                                    json_pack (
@@ -244,18 +246,19 @@ TEH_RESPONSE_compile_transaction_history (
       {
         struct TALER_EXCHANGEDB_RecoupRefreshListEntry *pr =
           pos->details.old_coin_recoup;
-        struct TALER_RecoupRefreshConfirmationPS pc;
         struct TALER_ExchangePublicKeyP epub;
         struct TALER_ExchangeSignatureP esig;
+        struct TALER_RecoupRefreshConfirmationPS pc = {
+          .purpose.purpose = htonl (
+            TALER_SIGNATURE_EXCHANGE_CONFIRM_RECOUP_REFRESH),
+          .purpose.size = htonl (sizeof (pc)),
+          .timestamp = GNUNET_TIME_absolute_hton (pr->timestamp),
+          .coin_pub = *coin_pub,
+          .old_coin_pub = pr->old_coin_pub
+        };
 
-        pc.purpose.purpose = htonl (
-          TALER_SIGNATURE_EXCHANGE_CONFIRM_RECOUP_REFRESH);
-        pc.purpose.size = htonl (sizeof (pc));
-        pc.timestamp = GNUNET_TIME_absolute_hton (pr->timestamp);
         TALER_amount_hton (&pc.recoup_amount,
                            &pr->value);
-        pc.coin_pub = *coin_pub;
-        pc.old_coin_pub = pr->old_coin_pub;
         if (GNUNET_OK !=
             TEH_KS_sign (&pc.purpose,
                          &epub,
@@ -299,17 +302,18 @@ TEH_RESPONSE_compile_transaction_history (
       {
         const struct TALER_EXCHANGEDB_RecoupListEntry *recoup =
           pos->details.recoup;
-        struct TALER_RecoupConfirmationPS pc;
         struct TALER_ExchangePublicKeyP epub;
         struct TALER_ExchangeSignatureP esig;
+        struct TALER_RecoupConfirmationPS pc = {
+          .purpose.purpose = htonl (TALER_SIGNATURE_EXCHANGE_CONFIRM_RECOUP),
+          .purpose.size = htonl (sizeof (pc)),
+          .timestamp = GNUNET_TIME_absolute_hton (recoup->timestamp),
+          .coin_pub = *coin_pub,
+          .reserve_pub = recoup->reserve_pub
+        };
 
-        pc.purpose.purpose = htonl (TALER_SIGNATURE_EXCHANGE_CONFIRM_RECOUP);
-        pc.purpose.size = htonl (sizeof (pc));
-        pc.timestamp = GNUNET_TIME_absolute_hton (recoup->timestamp);
         TALER_amount_hton (&pc.recoup_amount,
                            &recoup->value);
-        pc.coin_pub = *coin_pub;
-        pc.reserve_pub = recoup->reserve_pub;
         if (GNUNET_OK !=
             TEH_KS_sign (&pc.purpose,
                          &epub,
@@ -348,18 +352,19 @@ TEH_RESPONSE_compile_transaction_history (
       {
         struct TALER_EXCHANGEDB_RecoupRefreshListEntry *pr =
           pos->details.recoup_refresh;
-        struct TALER_RecoupRefreshConfirmationPS pc;
         struct TALER_ExchangePublicKeyP epub;
         struct TALER_ExchangeSignatureP esig;
+        struct TALER_RecoupRefreshConfirmationPS pc = {
+          .purpose.purpose = htonl (
+            TALER_SIGNATURE_EXCHANGE_CONFIRM_RECOUP_REFRESH),
+          .purpose.size = htonl (sizeof (pc)),
+          .timestamp = GNUNET_TIME_absolute_hton (pr->timestamp),
+          .coin_pub = *coin_pub,
+          .old_coin_pub = pr->old_coin_pub
+        };
 
-        pc.purpose.purpose = htonl (
-          TALER_SIGNATURE_EXCHANGE_CONFIRM_RECOUP_REFRESH);
-        pc.purpose.size = htonl (sizeof (pc));
-        pc.timestamp = GNUNET_TIME_absolute_hton (pr->timestamp);
         TALER_amount_hton (&pc.recoup_amount,
                            &pr->value);
-        pc.coin_pub = *coin_pub;
-        pc.old_coin_pub = pr->old_coin_pub;
         if (GNUNET_OK !=
             TEH_KS_sign (&pc.purpose,
                          &epub,
@@ -573,7 +578,6 @@ TEH_RESPONSE_compile_reserve_history (
     case TALER_EXCHANGEDB_RO_RECOUP_COIN:
       {
         const struct TALER_EXCHANGEDB_Recoup *recoup;
-        struct TALER_RecoupConfirmationPS pc;
         struct TALER_ExchangePublicKeyP pub;
         struct TALER_ExchangeSignatureP sig;
 
@@ -592,21 +596,26 @@ TEH_RESPONSE_compile_reserve_history (
           json_decref (json_history);
           return NULL;
         }
-        pc.purpose.purpose = htonl (TALER_SIGNATURE_EXCHANGE_CONFIRM_RECOUP);
-        pc.purpose.size = htonl (sizeof (struct TALER_RecoupConfirmationPS));
-        pc.timestamp = GNUNET_TIME_absolute_hton (recoup->timestamp);
-        TALER_amount_hton (&pc.recoup_amount,
-                           &recoup->value);
-        pc.coin_pub = recoup->coin.coin_pub;
-        pc.reserve_pub = recoup->reserve_pub;
-        if (GNUNET_OK !=
-            TEH_KS_sign (&pc.purpose,
-                         &pub,
-                         &sig))
         {
-          GNUNET_break (0);
-          json_decref (json_history);
-          return NULL;
+          struct TALER_RecoupConfirmationPS pc = {
+            .purpose.purpose = htonl (TALER_SIGNATURE_EXCHANGE_CONFIRM_RECOUP),
+            .purpose.size = htonl (sizeof (pc)),
+            .timestamp = GNUNET_TIME_absolute_hton (recoup->timestamp),
+            .coin_pub = recoup->coin.coin_pub,
+            .reserve_pub = recoup->reserve_pub
+          };
+
+          TALER_amount_hton (&pc.recoup_amount,
+                             &recoup->value);
+          if (GNUNET_OK !=
+              TEH_KS_sign (&pc.purpose,
+                           &pub,
+                           &sig))
+          {
+            GNUNET_break (0);
+            json_decref (json_history);
+            return NULL;
+          }
         }
 
         if (0 !=
@@ -634,7 +643,6 @@ TEH_RESPONSE_compile_reserve_history (
       break;
     case TALER_EXCHANGEDB_RO_EXCHANGE_TO_BANK:
       {
-        struct TALER_ReserveCloseConfirmationPS rcc;
         struct TALER_ExchangePublicKeyP pub;
         struct TALER_ExchangeSignatureP sig;
         struct TALER_Amount value;
@@ -657,30 +665,34 @@ TEH_RESPONSE_compile_reserve_history (
             return NULL;
           }
         }
-        rcc.purpose.purpose = htonl (TALER_SIGNATURE_EXCHANGE_RESERVE_CLOSED);
-        rcc.purpose.size = htonl (sizeof (struct
-                                          TALER_ReserveCloseConfirmationPS));
-        rcc.timestamp = GNUNET_TIME_absolute_hton (
-          pos->details.closing->execution_date);
-        TALER_amount_hton (&rcc.closing_amount,
-                           &value);
-        TALER_amount_hton (&rcc.closing_fee,
-                           &pos->details.closing->closing_fee);
-        rcc.reserve_pub = pos->details.closing->reserve_pub;
-        GNUNET_CRYPTO_hash (pos->details.closing->receiver_account_details,
-                            strlen (
-                              pos->details.closing->receiver_account_details)
-                            + 1,
-                            &rcc.h_wire);
-        rcc.wtid = pos->details.closing->wtid;
-        if (GNUNET_OK !=
-            TEH_KS_sign (&rcc.purpose,
-                         &pub,
-                         &sig))
         {
-          GNUNET_break (0);
-          json_decref (json_history);
-          return NULL;
+          struct TALER_ReserveCloseConfirmationPS rcc = {
+            .purpose.purpose = htonl (TALER_SIGNATURE_EXCHANGE_RESERVE_CLOSED),
+            .purpose.size = htonl (sizeof (rcc)),
+            .timestamp = GNUNET_TIME_absolute_hton (
+              pos->details.closing->execution_date),
+            .reserve_pub = pos->details.closing->reserve_pub,
+            .wtid = pos->details.closing->wtid
+          };
+
+          TALER_amount_hton (&rcc.closing_amount,
+                             &value);
+          TALER_amount_hton (&rcc.closing_fee,
+                             &pos->details.closing->closing_fee);
+          GNUNET_CRYPTO_hash (pos->details.closing->receiver_account_details,
+                              strlen (
+                                pos->details.closing->receiver_account_details)
+                              + 1,
+                              &rcc.h_wire);
+          if (GNUNET_OK !=
+              TEH_KS_sign (&rcc.purpose,
+                           &pub,
+                           &sig))
+          {
+            GNUNET_break (0);
+            json_decref (json_history);
+            return NULL;
+          }
         }
         if (0 !=
             json_array_append_new (json_history,

-- 
To stop receiving notification emails like this one, please contact
address@hidden.



reply via email to

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