gnunet-svn
[Top][All Lists]
Advanced

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

[GNUnet-SVN] [taler-exchange] branch master updated: fix issue in wire a


From: gnunet
Subject: [GNUnet-SVN] [taler-exchange] branch master updated: fix issue in wire auditor's history processing
Date: Mon, 20 Nov 2017 21:55:29 +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 7749a68  fix issue in wire auditor's history processing
7749a68 is described below

commit 7749a683ba602cf13ed160c6ed63d668adbf4b1c
Author: Christian Grothoff <address@hidden>
AuthorDate: Mon Nov 20 21:55:24 2017 +0100

    fix issue in wire auditor's history processing
---
 src/auditor/taler-wire-auditor.c | 45 ++++++++++++++++++++++++++--------------
 src/wire/plugin_wire_test.c      |  3 +--
 2 files changed, 31 insertions(+), 17 deletions(-)

diff --git a/src/auditor/taler-wire-auditor.c b/src/auditor/taler-wire-auditor.c
index 9f16794..1b514a0 100644
--- a/src/auditor/taler-wire-auditor.c
+++ b/src/auditor/taler-wire-auditor.c
@@ -874,7 +874,7 @@ history_debit_cb (void *cls,
                        "wire_offset_hash", GNUNET_JSON_from_data_auto (&rowh),
                        "diagnostic", diagnostic));
     GNUNET_free (diagnostic);
-    return GNUNET_SYSERR;
+    return GNUNET_OK;
   }
   roi = GNUNET_new (struct ReserveOutInfo);
   GNUNET_CRYPTO_hash (&details->wtid,
@@ -908,14 +908,14 @@ history_debit_cb (void *cls,
                        "wire_offset_hash", GNUNET_JSON_from_data_auto (&rowh),
                        "diagnostic", diagnostic));
     GNUNET_free (diagnostic);
-    return GNUNET_SYSERR;
+    return GNUNET_OK;
   }
   return GNUNET_OK;
 }
 
 
 /**
- * Main functin for processing 'reserves_out' data.
+ * Main function for processing 'reserves_out' data.
  * We start by going over the DEBIT transactions this
  * time, and then verify that all of them are justified
  * by 'reserves_out'.
@@ -1044,6 +1044,27 @@ complain_in_not_found (void *cls,
 
 
 /**
+ * Conclude the credit history check by logging entries that
+ * were not found and freeing resources. Then move on to
+ * processing debits.
+ */
+static void
+conclude_credit_history ()
+{
+  GNUNET_CONTAINER_multihashmap_iterate (in_map,
+                                         &complain_in_not_found,
+                                         NULL);
+  /* clean up before 2nd phase */
+  GNUNET_CONTAINER_multihashmap_iterate (in_map,
+                                         &free_rii,
+                                         NULL);
+  GNUNET_CONTAINER_multihashmap_destroy (in_map);
+  in_map = NULL;
+  process_debits ();
+}
+
+
+/**
  * This function is called for all transactions that
  * are credited to the exchange's account (incoming
  * transactions).
@@ -1069,17 +1090,8 @@ history_credit_cb (void *cls,
   {
     /* end of operation */
     hh = NULL;
-    GNUNET_CONTAINER_multihashmap_iterate (in_map,
-                                          &complain_in_not_found,
-                                          NULL);
-    /* clean up before 2nd phase */
-    GNUNET_CONTAINER_multihashmap_iterate (in_map,
-                                          &free_rii,
-                                          NULL);
-    GNUNET_CONTAINER_multihashmap_destroy (in_map);
-    in_map = NULL;
-    process_debits ();
-    return GNUNET_SYSERR;
+    conclude_credit_history ();
+    return GNUNET_OK;
   }
   GNUNET_CRYPTO_hash (row_off,
                      row_off_size,
@@ -1091,7 +1103,9 @@ history_credit_cb (void *cls,
     GNUNET_log (GNUNET_ERROR_TYPE_INFO,
                "Failed to find wire transfer at `%s' in exchange database. 
Audit ends at this point in time.\n",
                GNUNET_STRINGS_absolute_time_to_string 
(details->execution_date));
-    return GNUNET_SYSERR;
+    hh = NULL;
+    conclude_credit_history ();
+    return GNUNET_SYSERR; /* not an error, just end of processing */
   }
 
   /* Update offset */
@@ -1105,6 +1119,7 @@ history_credit_cb (void *cls,
     GNUNET_break (0);
     commit (GNUNET_DB_STATUS_HARD_ERROR);
     GNUNET_SCHEDULER_shutdown ();
+    hh = NULL;
     return GNUNET_SYSERR;
   }
   memcpy (in_wire_off,
diff --git a/src/wire/plugin_wire_test.c b/src/wire/plugin_wire_test.c
index e9d5ad0..1a7443b 100644
--- a/src/wire/plugin_wire_test.c
+++ b/src/wire/plugin_wire_test.c
@@ -872,7 +872,6 @@ bhist_cb (void *cls,
                            NULL,
                            0,
                            NULL);
-    whh->hh = NULL;
     GNUNET_free (whh);
     break;
   default:
@@ -885,7 +884,6 @@ bhist_cb (void *cls,
                            NULL,
                            0,
                            NULL);
-    whh->hh = NULL;
     GNUNET_free (whh);
     break;
   }
@@ -970,6 +968,7 @@ test_get_history (void *cls,
     GNUNET_free (whh);
     return NULL;
   }
+
   return whh;
 }
 

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



reply via email to

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