gnunet-svn
[Top][All Lists]
Advanced

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

[taler-exchange] branch master updated: support long_poll_ms argument in


From: gnunet
Subject: [taler-exchange] branch master updated: support long_poll_ms argument in bank API (#6987)
Date: Thu, 12 Aug 2021 13:13:45 +0200

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 f174781b support long_poll_ms argument in bank API (#6987)
f174781b is described below

commit f174781b570bb534db424e57a3b563a74ad36f77
Author: Christian Grothoff <christian@grothoff.org>
AuthorDate: Thu Aug 12 13:13:42 2021 +0200

    support long_poll_ms argument in bank API (#6987)
---
 src/auditor/taler-helper-auditor-wire.c           | 22 +++---
 src/bank-lib/Makefile.am                          |  1 +
 src/bank-lib/bank_api_credit.c                    | 56 ++++++++++++----
 src/bank-lib/bank_api_debit.c                     | 81 ++++++++++++-----------
 src/bank-lib/fakebank.c                           | 12 +---
 src/bank-lib/taler-exchange-wire-gateway-client.c | 18 ++---
 src/bank-lib/taler-fakebank-run.c                 | 13 +++-
 src/benchmark/taler-bank-benchmark.c              |  3 +-
 src/exchange/taler-exchange-wirewatch.c           | 11 ++-
 src/include/taler_bank_service.h                  | 16 +++--
 src/include/taler_fakebank_lib.h                  |  4 +-
 src/testing/testing_api_cmd_bank_history_credit.c | 40 +++++------
 src/testing/testing_api_cmd_bank_history_debit.c  | 11 +--
 13 files changed, 167 insertions(+), 121 deletions(-)

diff --git a/src/auditor/taler-helper-auditor-wire.c 
b/src/auditor/taler-helper-auditor-wire.c
index 8dded816..eee186ca 100644
--- a/src/auditor/taler-helper-auditor-wire.c
+++ b/src/auditor/taler-helper-auditor-wire.c
@@ -1014,7 +1014,7 @@ wire_out_cb (void *cls,
 
     payto_uri = TALER_JSON_wire_to_payto (wire);
     if (0 != strcasecmp (payto_uri,
-                         roi->details.credit_account_url))
+                         roi->details.credit_account_uri))
     {
       /* Destination bank account is wrong in actual wire transfer, so
          we should count the wire transfer as entirely spurious, and
@@ -1055,7 +1055,7 @@ wire_out_cb (void *cls,
                                                    "receiver account 
mismatch"),
                           GNUNET_JSON_pack_string ("target",
                                                    roi->details.
-                                                   credit_account_url),
+                                                   credit_account_uri),
                           GNUNET_JSON_pack_string ("account_section",
                                                    wa->ai->section_name)));
       TALER_ARL_amount_add (&total_bad_amount_out_minus,
@@ -1165,7 +1165,7 @@ check_rc_matches (void *cls,
   if ( (0 == GNUNET_memcmp (&ctx->roi->details.wtid,
                             &rc->wtid)) &&
        (0 == strcasecmp (rc->receiver_account,
-                         ctx->roi->details.credit_account_url)) &&
+                         ctx->roi->details.credit_account_uri)) &&
        (0 == TALER_amount_cmp (&rc->amount,
                                &ctx->roi->details.amount)) )
   {
@@ -1207,7 +1207,7 @@ complain_out_not_found (void *cls,
   };
 
   (void) key;
-  hash_rc (roi->details.credit_account_url,
+  hash_rc (roi->details.credit_account_uri,
            &roi->details.wtid,
            &rkey);
   GNUNET_CONTAINER_multihashmap_get_multiple (reserve_closures,
@@ -1341,7 +1341,7 @@ history_debit_cb (void *cls,
               TALER_B2S (&details->wtid));
   /* Update offset */
   wa->out_wire_off = row_off;
-  slen = strlen (details->credit_account_url) + 1;
+  slen = strlen (details->credit_account_uri) + 1;
   roi = GNUNET_malloc (sizeof (struct ReserveOutInfo)
                        + slen);
   GNUNET_CRYPTO_hash (&details->wtid,
@@ -1350,9 +1350,9 @@ history_debit_cb (void *cls,
   roi->details.amount = details->amount;
   roi->details.execution_date = details->execution_date;
   roi->details.wtid = details->wtid;
-  roi->details.credit_account_url = (const char *) &roi[1];
+  roi->details.credit_account_uri = (const char *) &roi[1];
   memcpy (&roi[1],
-          details->credit_account_url,
+          details->credit_account_uri,
           slen);
   if (GNUNET_OK !=
       GNUNET_CONTAINER_multihashmap_put (out_map,
@@ -1414,6 +1414,7 @@ process_debits (void *cls)
                                       wa->ai->auth,
                                       wa->out_wire_off,
                                       INT64_MAX,
+                                      GNUNET_TIME_UNIT_ZERO,
                                       &history_debit_cb,
                                       wa);
   if (NULL == wa->dhh)
@@ -1496,7 +1497,7 @@ reserve_in_cb (void *cls,
   rii->details.amount = *credit;
   rii->details.execution_date = execution_date;
   rii->details.reserve_pub = *reserve_pub;
-  rii->details.debit_account_url = (const char *) &rii[1];
+  rii->details.debit_account_uri = (const char *) &rii[1];
   memcpy (&rii[1],
           sender_account_details,
           slen);
@@ -1752,8 +1753,8 @@ history_credit_cb (void *cls,
     }
     goto cleanup;
   }
-  if (0 != strcasecmp (details->debit_account_url,
-                       rii->details.debit_account_url))
+  if (0 != strcasecmp (details->debit_account_uri,
+                       rii->details.debit_account_uri))
   {
     TALER_ARL_report (report_missattribution_in_inconsistencies,
                       GNUNET_JSON_PACK (
@@ -1843,6 +1844,7 @@ process_credits (void *cls)
                                        wa->ai->auth,
                                        wa->in_wire_off,
                                        INT64_MAX,
+                                       GNUNET_TIME_UNIT_ZERO,
                                        &history_credit_cb,
                                        wa);
   if (NULL == wa->chh)
diff --git a/src/bank-lib/Makefile.am b/src/bank-lib/Makefile.am
index ef15a42d..ffd428a6 100644
--- a/src/bank-lib/Makefile.am
+++ b/src/bank-lib/Makefile.am
@@ -14,6 +14,7 @@ taler_fakebank_run_SOURCES = \
   taler-fakebank-run.c
 taler_fakebank_run_LDADD = \
   libtalerfakebank.la \
+  $(top_builddir)/src/mhd/libtalermhd.la \
   $(top_builddir)/src/util/libtalerutil.la \
   -lgnunetutil
 
diff --git a/src/bank-lib/bank_api_credit.c b/src/bank-lib/bank_api_credit.c
index 095cc379..91fbe506 100644
--- a/src/bank-lib/bank_api_credit.c
+++ b/src/bank-lib/bank_api_credit.c
@@ -1,6 +1,6 @@
 /*
   This file is part of TALER
-  Copyright (C) 2017--2020 Taler Systems SA
+  Copyright (C) 2017--2021 Taler Systems SA
 
   TALER is free software; you can redistribute it and/or
   modify it under the terms of the GNU General Public License
@@ -97,9 +97,9 @@ parse_account_history (struct TALER_BANK_CreditHistoryHandle 
*hh,
       GNUNET_JSON_spec_fixed_auto ("reserve_pub",
                                    &td.reserve_pub),
       GNUNET_JSON_spec_string ("debit_account",
-                               &td.debit_account_url),
+                               &td.debit_account_uri),
       GNUNET_JSON_spec_string ("credit_account",
-                               &td.credit_account_url),
+                               &td.credit_account_uri),
       GNUNET_JSON_spec_end ()
     };
     json_t *transaction = json_array_get (history_array,
@@ -217,12 +217,14 @@ TALER_BANK_credit_history (struct GNUNET_CURL_Context 
*ctx,
                            const struct TALER_BANK_AuthenticationData *auth,
                            uint64_t start_row,
                            int64_t num_results,
+                           struct GNUNET_TIME_Relative timeout,
                            TALER_BANK_CreditHistoryCallback hres_cb,
                            void *hres_cb_cls)
 {
   char url[128];
   struct TALER_BANK_CreditHistoryHandle *hh;
   CURL *eh;
+  unsigned long long tms;
 
   if (0 == num_results)
   {
@@ -230,20 +232,43 @@ TALER_BANK_credit_history (struct GNUNET_CURL_Context 
*ctx,
     return NULL;
   }
 
+  tms = (unsigned long long) (timeout.rel_value_us
+                              / GNUNET_TIME_UNIT_MILLISECONDS.rel_value_us);
   if ( ( (UINT64_MAX == start_row) &&
          (0 > num_results) ) ||
        ( (0 == start_row) &&
          (0 < num_results) ) )
-    GNUNET_snprintf (url,
-                     sizeof (url),
-                     "history/incoming?delta=%lld",
-                     (long long) num_results);
+  {
+    if ( (0 < num_results) &&
+         (! GNUNET_TIME_relative_is_zero (timeout)) )
+      GNUNET_snprintf (url,
+                       sizeof (url),
+                       "history/incoming?delta=%lld&long_poll_ms=%llu",
+                       (long long) num_results,
+                       tms);
+    else
+      GNUNET_snprintf (url,
+                       sizeof (url),
+                       "history/incoming?delta=%lld",
+                       (long long) num_results);
+  }
   else
-    GNUNET_snprintf (url,
-                     sizeof (url),
-                     "history/incoming?delta=%lld&start=%llu",
-                     (long long) num_results,
-                     (unsigned long long) start_row);
+  {
+    if ( (0 < num_results) &&
+         (! GNUNET_TIME_relative_is_zero (timeout)) )
+      GNUNET_snprintf (url,
+                       sizeof (url),
+                       
"history/incoming?delta=%lld&start=%llu&long_poll_ms=%llu",
+                       (long long) num_results,
+                       (unsigned long long) start_row,
+                       tms);
+    else
+      GNUNET_snprintf (url,
+                       sizeof (url),
+                       "history/incoming?delta=%lld&start=%llu",
+                       (long long) num_results,
+                       (unsigned long long) start_row);
+  }
   hh = GNUNET_new (struct TALER_BANK_CreditHistoryHandle);
   hh->hcb = hres_cb;
   hh->hcb_cls = hres_cb_cls;
@@ -275,6 +300,13 @@ TALER_BANK_credit_history (struct GNUNET_CURL_Context *ctx,
       curl_easy_cleanup (eh);
     return NULL;
   }
+  if (0 != tms)
+  {
+    GNUNET_break (CURLE_OK ==
+                  curl_easy_setopt (eh,
+                                    CURLOPT_TIMEOUT_MS,
+                                    (long) tms));
+  }
   hh->job = GNUNET_CURL_job_add2 (ctx,
                                   eh,
                                   NULL,
diff --git a/src/bank-lib/bank_api_debit.c b/src/bank-lib/bank_api_debit.c
index 0e1ec0c5..8cca0cc5 100644
--- a/src/bank-lib/bank_api_debit.c
+++ b/src/bank-lib/bank_api_debit.c
@@ -1,6 +1,6 @@
 /*
   This file is part of TALER
-  Copyright (C) 2017--2020 Taler Systems SA
+  Copyright (C) 2017--2021 Taler Systems SA
 
   TALER is free software; you can redistribute it and/or
   modify it under the terms of the GNU General Public License
@@ -97,9 +97,9 @@ parse_account_history (struct TALER_BANK_DebitHistoryHandle 
*hh,
       GNUNET_JSON_spec_fixed_auto ("wtid",
                                    &td.wtid),
       GNUNET_JSON_spec_string ("credit_account",
-                               &td.credit_account_url),
+                               &td.credit_account_uri),
       GNUNET_JSON_spec_string ("debit_account",
-                               &td.debit_account_url),
+                               &td.debit_account_uri),
       GNUNET_JSON_spec_string ("exchange_base_url",
                                &td.exchange_base_url),
       GNUNET_JSON_spec_end ()
@@ -214,35 +214,19 @@ handle_debit_history_finished (void *cls,
 }
 
 
-/**
- * Request the debit history of the exchange's bank account.
- *
- * @param ctx curl context for the event loop
- * @param auth authentication data to use
- * @param start_row from which row on do we want to get results,
- *        use UINT64_MAX for the latest; exclusive
- * @param num_results how many results do we want;
- *        negative numbers to go into the past, positive numbers
- *        to go into the future starting at @a start_row;
- *        must not be zero.
- * @param hres_cb the callback to call with the transaction
- *        history
- * @param hres_cb_cls closure for the above callback
- * @return NULL if the inputs are invalid (i.e. zero value for
- *         @e num_results). In this case, the callback is not
- *         called.
- */
 struct TALER_BANK_DebitHistoryHandle *
 TALER_BANK_debit_history (struct GNUNET_CURL_Context *ctx,
                           const struct TALER_BANK_AuthenticationData *auth,
                           uint64_t start_row,
                           int64_t num_results,
+                          struct GNUNET_TIME_Relative timeout,
                           TALER_BANK_DebitHistoryCallback hres_cb,
                           void *hres_cb_cls)
 {
   char url[128];
   struct TALER_BANK_DebitHistoryHandle *hh;
   CURL *eh;
+  unsigned long long tms;
 
   if (0 == num_results)
   {
@@ -250,20 +234,43 @@ TALER_BANK_debit_history (struct GNUNET_CURL_Context *ctx,
     return NULL;
   }
 
+  tms = (unsigned long long) (timeout.rel_value_us
+                              / GNUNET_TIME_UNIT_MILLISECONDS.rel_value_us);
   if ( ( (UINT64_MAX == start_row) &&
          (0 > num_results) ) ||
        ( (0 == start_row) &&
          (0 < num_results) ) )
-    GNUNET_snprintf (url,
-                     sizeof (url),
-                     "history/outgoing?delta=%lld",
-                     (long long) num_results);
+  {
+    if ( (0 < num_results) &&
+         (! GNUNET_TIME_relative_is_zero (timeout)) )
+      GNUNET_snprintf (url,
+                       sizeof (url),
+                       "history/outgoing?delta=%lld&long_poll_ms=%llu",
+                       (long long) num_results,
+                       tms);
+    else
+      GNUNET_snprintf (url,
+                       sizeof (url),
+                       "history/outgoing?delta=%lld",
+                       (long long) num_results);
+  }
   else
-    GNUNET_snprintf (url,
-                     sizeof (url),
-                     "history/outgoing?delta=%lld&start=%llu",
-                     (long long) num_results,
-                     (unsigned long long) start_row);
+  {
+    if ( (0 < num_results) &&
+         (! GNUNET_TIME_relative_is_zero (timeout)) )
+      GNUNET_snprintf (url,
+                       sizeof (url),
+                       
"history/outgoing?delta=%lld&start=%llu&long_poll_ms=%llu",
+                       (long long) num_results,
+                       (unsigned long long) start_row,
+                       tms);
+    else
+      GNUNET_snprintf (url,
+                       sizeof (url),
+                       "history/outgoing?delta=%lld&start=%llu",
+                       (long long) num_results,
+                       (unsigned long long) start_row);
+  }
   hh = GNUNET_new (struct TALER_BANK_DebitHistoryHandle);
   hh->hcb = hres_cb;
   hh->hcb_cls = hres_cb_cls;
@@ -295,6 +302,13 @@ TALER_BANK_debit_history (struct GNUNET_CURL_Context *ctx,
       curl_easy_cleanup (eh);
     return NULL;
   }
+  if (0 != tms)
+  {
+    GNUNET_break (CURLE_OK ==
+                  curl_easy_setopt (eh,
+                                    CURLOPT_TIMEOUT_MS,
+                                    (long) tms));
+  }
   hh->job = GNUNET_CURL_job_add2 (ctx,
                                   eh,
                                   NULL,
@@ -304,13 +318,6 @@ TALER_BANK_debit_history (struct GNUNET_CURL_Context *ctx,
 }
 
 
-/**
- * Cancel a history request.  This function cannot be
- * used on a request handle if a response is already
- * served for it.
- *
- * @param hh the history request handle
- */
 void
 TALER_BANK_debit_history_cancel (struct TALER_BANK_DebitHistoryHandle *hh)
 {
diff --git a/src/bank-lib/fakebank.c b/src/bank-lib/fakebank.c
index 8c5a90fe..7c5a95ad 100644
--- a/src/bank-lib/fakebank.c
+++ b/src/bank-lib/fakebank.c
@@ -321,11 +321,6 @@ struct TALER_FAKEBANK_Handle
    */
   uint16_t port;
 
-  /**
-   * Force closing connections after each request.
-   */
-  bool force_close;
-
 #if EPOLL_SUPPORT
   /**
    * Boxed @e mhd_fd.
@@ -1968,8 +1963,7 @@ TALER_FAKEBANK_start (uint16_t port,
   return TALER_FAKEBANK_start2 (port,
                                 currency,
                                 65536, /* RAM limit */
-                                1, /* number of threads */
-                                false);
+                                1);
 }
 
 
@@ -1977,8 +1971,7 @@ struct TALER_FAKEBANK_Handle *
 TALER_FAKEBANK_start2 (uint16_t port,
                        const char *currency,
                        uint64_t ram_limit,
-                       unsigned int num_threads,
-                       bool close_connections)
+                       unsigned int num_threads)
 {
   struct TALER_FAKEBANK_Handle *h;
 
@@ -1992,7 +1985,6 @@ TALER_FAKEBANK_start2 (uint16_t port,
   GNUNET_assert (strlen (currency) < TALER_CURRENCY_LEN);
   h = GNUNET_new (struct TALER_FAKEBANK_Handle);
   h->port = port;
-  h->force_close = close_connections;
   h->ram_limit = ram_limit;
   h->serial_counter = 0;
   GNUNET_assert (0 ==
diff --git a/src/bank-lib/taler-exchange-wire-gateway-client.c 
b/src/bank-lib/taler-exchange-wire-gateway-client.c
index 436d416d..47df82a8 100644
--- a/src/bank-lib/taler-exchange-wire-gateway-client.c
+++ b/src/bank-lib/taler-exchange-wire-gateway-client.c
@@ -215,18 +215,18 @@ credit_history_cb (void *cls,
   /* If credit/debit accounts were specified, use as a filter */
   if ( (NULL != credit_account) &&
        (0 != strcasecmp (credit_account,
-                         details->credit_account_url) ) )
+                         details->credit_account_uri) ) )
     return GNUNET_OK;
   if ( (NULL != debit_account) &&
        (0 != strcasecmp (debit_account,
-                         details->debit_account_url) ) )
+                         details->debit_account_uri) ) )
     return GNUNET_OK;
 
   fprintf (stdout,
            "%llu: %s->%s (%s) over %s at %s\n",
            (unsigned long long) serial_id,
-           details->debit_account_url,
-           details->credit_account_url,
+           details->debit_account_uri,
+           details->credit_account_uri,
            TALER_B2S (&details->reserve_pub),
            TALER_amount2s (&details->amount),
            GNUNET_STRINGS_absolute_time_to_string (details->execution_date));
@@ -252,6 +252,7 @@ execute_credit_history (void)
                                    &auth,
                                    start_row,
                                    -10,
+                                   GNUNET_TIME_UNIT_ZERO,
                                    &credit_history_cb,
                                    NULL);
   if (NULL == chh)
@@ -329,18 +330,18 @@ debit_history_cb (void *cls,
   /* If credit/debit accounts were specified, use as a filter */
   if ( (NULL != credit_account) &&
        (0 != strcasecmp (credit_account,
-                         details->credit_account_url) ) )
+                         details->credit_account_uri) ) )
     return GNUNET_OK;
   if ( (NULL != debit_account) &&
        (0 != strcasecmp (debit_account,
-                         details->debit_account_url) ) )
+                         details->debit_account_uri) ) )
     return GNUNET_OK;
 
   fprintf (stdout,
            "%llu: %s->%s (%s) over %s at %s\n",
            (unsigned long long) serial_id,
-           details->debit_account_url,
-           details->credit_account_url,
+           details->debit_account_uri,
+           details->credit_account_uri,
            TALER_B2S (&details->wtid),
            TALER_amount2s (&details->amount),
            GNUNET_STRINGS_absolute_time_to_string (details->execution_date));
@@ -366,6 +367,7 @@ execute_debit_history (void)
                                   &auth,
                                   start_row,
                                   -10,
+                                  GNUNET_TIME_UNIT_ZERO,
                                   &debit_history_cb,
                                   NULL);
   if (NULL == dhh)
diff --git a/src/bank-lib/taler-fakebank-run.c 
b/src/bank-lib/taler-fakebank-run.c
index ff9dcc17..282e3950 100644
--- a/src/bank-lib/taler-fakebank-run.c
+++ b/src/bank-lib/taler-fakebank-run.c
@@ -23,9 +23,9 @@
  * @author Marcello Stanisci
  * @author Christian Grothoff
  */
-
 #include "platform.h"
 #include "taler_fakebank_lib.h"
+#include "taler_mhd_lib.h"
 
 /**
  * Number of threads to use (-n)
@@ -111,11 +111,18 @@ run (void *cls,
                 "Maximum transaction history in RAM set to default of %llu\n",
                 ram);
   }
+  {
+    enum TALER_MHD_GlobalOptions go;
+
+    go = TALER_MHD_GO_NONE;
+    if (0 != connection_close)
+      go |= TALER_MHD_GO_FORCE_CONNECTION_CLOSE;
+    TALER_MHD_setup (go);
+  }
   fb = TALER_FAKEBANK_start2 ((uint16_t) port,
                               currency_string,
                               ram,
-                              num_threads,
-                              (0 != connection_close));
+                              num_threads);
   if (NULL == fb)
   {
     ret = EXIT_FAILURE;
diff --git a/src/benchmark/taler-bank-benchmark.c 
b/src/benchmark/taler-bank-benchmark.c
index f6c079e7..b7bcc105 100644
--- a/src/benchmark/taler-bank-benchmark.c
+++ b/src/benchmark/taler-bank-benchmark.c
@@ -443,8 +443,7 @@ launch_fakebank (void *cls)
     = TALER_FAKEBANK_start2 ((uint16_t) pnum,
                              currency,
                              history_size,
-                             howmany_threads,
-                             false);
+                             howmany_threads);
   if (NULL == fakebank)
   {
     GNUNET_break (0);
diff --git a/src/exchange/taler-exchange-wirewatch.c 
b/src/exchange/taler-exchange-wirewatch.c
index cc99e42c..2993999a 100644
--- a/src/exchange/taler-exchange-wirewatch.c
+++ b/src/exchange/taler-exchange-wirewatch.c
@@ -30,6 +30,12 @@
 #include "taler_bank_service.h"
 
 
+/**
+ * How long to wait for an HTTP reply if there
+ * are no transactions pending at the server?
+ */
+#define LONGPOLL_TIMEOUT GNUNET_TIME_UNIT_MINUTES
+
 /**
  * What is the maximum batch size we use for credit history
  * requests with the bank.  See `batch_size` below.
@@ -545,7 +551,7 @@ history_cb (void *cls,
                                       &details->reserve_pub,
                                       &details->amount,
                                       details->execution_date,
-                                      details->debit_account_url,
+                                      details->debit_account_uri,
                                       wa->ai->section_name,
                                       serial_id);
   switch (qs)
@@ -674,6 +680,9 @@ find_transfers (void *cls)
                                           wa_pos->ai->auth,
                                           wa_pos->batch_start,
                                           limit,
+                                          test_mode
+                                          ? GNUNET_TIME_UNIT_ZERO
+                                          : LONGPOLL_TIMEOUT,
                                           &history_cb,
                                           wa_pos);
   if (NULL == wa_pos->hh)
diff --git a/src/include/taler_bank_service.h b/src/include/taler_bank_service.h
index 32a730b8..db78ca6a 100644
--- a/src/include/taler_bank_service.h
+++ b/src/include/taler_bank_service.h
@@ -1,6 +1,6 @@
 /*
   This file is part of TALER
-  Copyright (C) 2015-2020 Taler Systems SA
+  Copyright (C) 2015-2021 Taler Systems SA
 
   TALER is free software; you can redistribute it and/or modify it under the
   terms of the GNU Affero General Public License as published by the Free 
Software
@@ -278,13 +278,13 @@ struct TALER_BANK_CreditDetails
    * payto://-URL of the source account that
    * send the funds.
    */
-  const char *debit_account_url;
+  const char *debit_account_uri;
 
   /**
    * payto://-URL of the target account that
    * received the funds.
    */
-  const char *credit_account_url;
+  const char *credit_account_uri;
 };
 
 
@@ -323,6 +323,8 @@ typedef enum GNUNET_GenericReturnValue
  * @param num_results how many results do we want; negative numbers to go into 
the past,
  *                    positive numbers to go into the future starting at @a 
start_row;
  *                    must not be zero.
+ * @param timeout how long the client is willing to wait for more results
+ *                (only useful if @a num_results is positive)
  * @param hres_cb the callback to call with the transaction history
  * @param hres_cb_cls closure for the above callback
  * @return NULL
@@ -334,6 +336,7 @@ TALER_BANK_credit_history (struct GNUNET_CURL_Context *ctx,
                            const struct TALER_BANK_AuthenticationData *auth,
                            uint64_t start_row,
                            int64_t num_results,
+                           struct GNUNET_TIME_Relative timeout,
                            TALER_BANK_CreditHistoryCallback hres_cb,
                            void *hres_cb_cls);
 
@@ -387,13 +390,13 @@ struct TALER_BANK_DebitDetails
    * payto://-URI of the source account that
    * send the funds.
    */
-  const char *debit_account_url; // FIXME: rename: url->uri
+  const char *debit_account_uri;
 
   /**
    * payto://-URI of the target account that
    * received the funds.
    */
-  const char *credit_account_url; // FIXME: rename: url->uri
+  const char *credit_account_uri;
 
 };
 
@@ -433,6 +436,8 @@ typedef enum GNUNET_GenericReturnValue
  * @param num_results how many results do we want; negative numbers to go into 
the past,
  *                    positive numbers to go into the future starting at @a 
start_row;
  *                    must not be zero.
+ * @param timeout how long the client is willing to wait for more results
+ *                (only useful if @a num_results is positive)
  * @param hres_cb the callback to call with the transaction history
  * @param hres_cb_cls closure for the above callback
  * @return NULL
@@ -444,6 +449,7 @@ TALER_BANK_debit_history (struct GNUNET_CURL_Context *ctx,
                           const struct TALER_BANK_AuthenticationData *auth,
                           uint64_t start_row,
                           int64_t num_results,
+                          struct GNUNET_TIME_Relative timeout,
                           TALER_BANK_DebitHistoryCallback hres_cb,
                           void *hres_cb_cls);
 
diff --git a/src/include/taler_fakebank_lib.h b/src/include/taler_fakebank_lib.h
index 375bc9aa..dc6ba1da 100644
--- a/src/include/taler_fakebank_lib.h
+++ b/src/include/taler_fakebank_lib.h
@@ -66,15 +66,13 @@ TALER_FAKEBANK_start (uint16_t port,
  * @param currency which currency should the bank offer
  * @param ram_limit how much memory do we use at most
  * @param num_threads size of the thread pool, 0 to use the GNUnet scheduler
- * @param close_connections true to force closing a connection after each 
request (no HTTP keep-alive)
  * @return NULL on error
  */
 struct TALER_FAKEBANK_Handle *
 TALER_FAKEBANK_start2 (uint16_t port,
                        const char *currency,
                        uint64_t ram_limit,
-                       unsigned int num_threads,
-                       bool close_connections);
+                       unsigned int num_threads);
 
 
 /**
diff --git a/src/testing/testing_api_cmd_bank_history_credit.c 
b/src/testing/testing_api_cmd_bank_history_credit.c
index 069f62cb..c052b55f 100644
--- a/src/testing/testing_api_cmd_bank_history_credit.c
+++ b/src/testing/testing_api_cmd_bank_history_credit.c
@@ -164,7 +164,7 @@ print_expected (struct History *h,
                 TALER_amount2s (&h[i].details.amount),
                 (unsigned long long) h[i].row_id,
                 TALER_B2S (&h[i].details.reserve_pub),
-                h[i].details.debit_account_url);
+                h[i].details.debit_account_uri);
   }
 }
 
@@ -313,11 +313,11 @@ build_history (struct TALER_TESTING_Interpreter *is,
                          total,
                          pos * 2);
     h[pos].url = GNUNET_strdup (debit_account);
-    h[pos].details.debit_account_url = h[pos].url;
+    h[pos].details.debit_account_uri = h[pos].url;
     h[pos].details.amount = *amount;
     h[pos].row_id = *row_id;
     h[pos].details.reserve_pub = *reserve_pub;
-    h[pos].details.credit_account_url = exchange_credit_url;
+    h[pos].details.credit_account_uri = exchange_credit_url;
     pos++;
   }
   GNUNET_assert (GNUNET_YES == ok);
@@ -364,16 +364,16 @@ check_result (struct History *h,
                             &details->reserve_pub)) ||
        (0 != TALER_amount_cmp (&h[off].details.amount,
                                &details->amount)) ||
-       (0 != strcasecmp (h[off].details.debit_account_url,
-                         details->debit_account_url)) )
+       (0 != strcasecmp (h[off].details.debit_account_uri,
+                         details->debit_account_uri)) )
   {
     GNUNET_break (0);
     GNUNET_log (GNUNET_ERROR_TYPE_INFO,
-                "expected debit_account_url: %s\n",
-                details->debit_account_url);
+                "expected debit_account_uri: %s\n",
+                details->debit_account_uri);
     GNUNET_log (GNUNET_ERROR_TYPE_INFO,
-                "actual debit_account_url: %s\n",
-                h[off].details.debit_account_url);
+                "actual debit_account_uri: %s\n",
+                h[off].details.debit_account_uri);
     print_expected (h,
                     total,
                     off);
@@ -521,6 +521,7 @@ history_run (void *cls,
                                       &hs->auth,
                                       row_id,
                                       hs->num_results,
+                                      GNUNET_TIME_UNIT_ZERO,
                                       &history_cb,
                                       is);
   GNUNET_assert (NULL != hs->hh);
@@ -554,23 +555,12 @@ history_cleanup (void *cls,
 }
 
 
-/**
- * Make a "history" CMD.
- *
- * @param label command label.
- * @param auth authentication data to talk with the wire gateway
- * @param start_row_reference reference to a command that can
- *        offer a row identifier, to be used as the starting row
- *        to accept in the result.
- * @param num_results how many rows we want in the result.
- * @return the command.
- */
 struct TALER_TESTING_Command
-TALER_TESTING_cmd_bank_credits (const char *label,
-                                const struct
-                                TALER_BANK_AuthenticationData *auth,
-                                const char *start_row_reference,
-                                long long num_results)
+TALER_TESTING_cmd_bank_credits (
+  const char *label,
+  const struct TALER_BANK_AuthenticationData *auth,
+  const char *start_row_reference,
+  long long num_results)
 {
   struct HistoryState *hs;
 
diff --git a/src/testing/testing_api_cmd_bank_history_debit.c 
b/src/testing/testing_api_cmd_bank_history_debit.c
index fcc78bfb..779facee 100644
--- a/src/testing/testing_api_cmd_bank_history_debit.c
+++ b/src/testing/testing_api_cmd_bank_history_debit.c
@@ -167,7 +167,7 @@ print_expected (struct History *h,
                 TALER_amount2s (&h[i].details.amount),
                 (unsigned long long) h[i].row_id,
                 TALER_B2S (&h[i].details.wtid),
-                h[i].details.credit_account_url);
+                h[i].details.credit_account_uri);
   }
 }
 
@@ -320,8 +320,8 @@ build_history (struct TALER_TESTING_Interpreter *is,
                          pos * 2);
     h[pos].c_url = GNUNET_strdup (credit_account);
     h[pos].d_url = GNUNET_strdup (debit_account);
-    h[pos].details.credit_account_url = h[pos].c_url;
-    h[pos].details.debit_account_url = h[pos].d_url;
+    h[pos].details.credit_account_uri = h[pos].c_url;
+    h[pos].details.debit_account_uri = h[pos].d_url;
     h[pos].details.amount = *amount;
     h[pos].row_id = *row_id;
     h[pos].details.wtid = *wtid;
@@ -372,8 +372,8 @@ check_result (struct History *h,
                             &details->wtid)) ||
        (0 != TALER_amount_cmp (&h[off].details.amount,
                                &details->amount)) ||
-       (0 != strcasecmp (h[off].details.credit_account_url,
-                         details->credit_account_url)) )
+       (0 != strcasecmp (h[off].details.credit_account_uri,
+                         details->credit_account_uri)) )
   {
     GNUNET_break (0);
     print_expected (h,
@@ -522,6 +522,7 @@ history_run (void *cls,
                                      &hs->auth,
                                      row_id,
                                      hs->num_results,
+                                     GNUNET_TIME_UNIT_ZERO,
                                      &history_cb,
                                      is);
   GNUNET_assert (NULL != hs->hh);

-- 
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]