gnunet-svn
[Top][All Lists]
Advanced

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

[taler-anastasis] branch master updated (f9c3469 -> 634db2b)


From: gnunet
Subject: [taler-anastasis] branch master updated (f9c3469 -> 634db2b)
Date: Mon, 30 Nov 2020 21:58:42 +0100

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

dennis-neufeld pushed a change to branch master
in repository anastasis.

    from f9c3469  fix
     new e303fb5  fix
     new f6a9ade  worked on recovery upload
     new 634db2b  work on rec doc upload

The 3 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 src/cli/test_anastasis_reducer_enter_secret.sh |   7 +-
 src/lib/anastasis.c                            |   7 +-
 src/lib/anastasis_api_backup_redux.c           | 137 ++++++++++++++++---------
 src/stasis/plugin_anastasis_postgres.c         |   3 +-
 4 files changed, 100 insertions(+), 54 deletions(-)

diff --git a/src/cli/test_anastasis_reducer_enter_secret.sh 
b/src/cli/test_anastasis_reducer_enter_secret.sh
index 1cac54a..e43c86d 100755
--- a/src/cli/test_anastasis_reducer_enter_secret.sh
+++ b/src/cli/test_anastasis_reducer_enter_secret.sh
@@ -101,11 +101,7 @@ AUDITOR_URL=http://localhost:8083/
 # patch configuration
 taler-config -c $CONF -s exchange -o MASTER_PUBLIC_KEY -V $MASTER_PUB
 taler-config -c $CONF -s merchant-exchange-default -o MASTER_KEY -V $MASTER_PUB
-# FIXME: SQL_DIR not usefull in general
-taler-config -c $CONF -s exchangedb-postgres -o SQL_DIR -V 
${HOME}/.local/share/taler/sql/exchange/
 taler-config -c $CONF -s exchangedb-postgres -o CONFIG -V postgres:///$TALER_DB
-# FIXME: SQL_DIR not usefull in general
-taler-config -c $CONF -s auditordb-postgres -o SQL_DIR -V 
${HOME}/.local/share/taler/sql/exchange/
 taler-config -c $CONF -s auditordb-postgres -o CONFIG -V postgres:///$TALER_DB
 taler-config -c $CONF -s merchantdb-postgres -o CONFIG -V postgres:///$TALER_DB
 taler-config -c $CONF -s bank -o database -V postgres:///$TALER_DB
@@ -129,13 +125,14 @@ mkdir -p $ABD
 mv a2e.dat $ABD
 
 # Launch services
-echo "Launching anastasis service"
+echo "Launching taler service"
 taler-bank-manage-testing $CONF postgres:///$TALER_DB serve &
 taler-exchange-httpd -c $CONF 2> taler-exchange-httpd.log &
 taler-merchant-httpd -c $CONF -L INFO 2> taler-merchant-httpd.log &
 taler-exchange-wirewatch -c $CONF 2> taler-exchange-wirewatch.log &
 taler-auditor-httpd -c $CONF 2> taler-auditor-httpd.log &
 
+echo "Launching anastasis service"
 anastasis-httpd -c $CONF_1 2> anastasis-httpd_1.log &
 anastasis-httpd -c $CONF_2 2> anastasis-httpd_2.log &
 anastasis-httpd -c $CONF_3 2> anastasis-httpd_3.log &
diff --git a/src/lib/anastasis.c b/src/lib/anastasis.c
index 4e81a4c..6e6ce75 100644
--- a/src/lib/anastasis.c
+++ b/src/lib/anastasis.c
@@ -1254,7 +1254,7 @@ ANASTASIS_truth_upload_cancel (struct 
ANASTASIS_TruthUpload *tu)
   if (NULL != tu->tso)
   {
     GNUNET_log (GNUNET_ERROR_TYPE_WARNING,
-                "policy lookup aborted");
+                "truth lookup aborted");
     ANASTASIS_truth_store_cancel (tu->tso);
     tu->tso = NULL;
   }
@@ -1606,6 +1606,7 @@ policy_store_cb (void *cls,
                     ec,
                     http_status);
       pss->ss->src = NULL;
+      policy_store_cleanup (pss);
     }
     return;
   }
@@ -2084,7 +2085,9 @@ ANASTASIS_secret_share (struct GNUNET_CURL_Context *ctx,
                                               ss->pss[l]->recovery_data,
                                               ss->pss[l]->recovery_data_size,
                                               ss->pss[l]->payment_requested,
-                                              &ss->pss[l]->payment_secret,
+                                              (pds_len > 0)
+                                              ? &ss->pss[l]->payment_secret
+                                              : NULL,
                                               &policy_store_cb,
                                               ss->pss[l]);
     if (NULL == ss->pss[l]->pso)
diff --git a/src/lib/anastasis_api_backup_redux.c 
b/src/lib/anastasis_api_backup_redux.c
index e8042be..489ee34 100644
--- a/src/lib/anastasis_api_backup_redux.c
+++ b/src/lib/anastasis_api_backup_redux.c
@@ -266,6 +266,36 @@ typedef struct ANASTASIS_ReduxAction *
                    void *cb_cls);
 
 
+static const char *
+get_provider_url_from_id (const char *id,
+                          json_t *state)
+{
+  const char *key;
+  json_t *method;
+  json_t *methods = json_object_get (state,
+                                     "authentication_providers");
+
+  json_object_foreach (methods, key, method)
+  {
+    GNUNET_assert (json_is_array (method));
+    json_t *method_data;
+    size_t index;
+
+    json_array_foreach (method, index, method_data)
+    {
+      json_t *provider_id = json_object_get (method_data, id);
+      if (NULL == provider_id)
+        continue;
+
+      const char *url = json_string_value (json_object_get (provider_id,
+                                                            "provider_url"));
+      return url;
+    }
+  }
+  return NULL;
+}
+
+
 static void
 set_state (json_t *state,
            const char *new_backup_state)
@@ -1033,17 +1063,19 @@ initialize_truths (json_t *state)
           json_object_get (supported_provider,
                            backend_id);
 
-        if (NULL == provider_data)
+        if (NULL != provider_data)
         {
+          backend_url = json_string_value (
+            json_object_get (provider_data,
+                             "provider_url"));
+          backend_salt = json_string_value (
+            json_object_get (provider_data,
+                             "provider_salt"));
           break;
         }
-        backend_url = json_string_value (
-          json_object_get (provider_data,
-                           "provider_url"));
-        backend_salt = json_string_value (
-          json_object_get (provider_data,
-                           "provider_salt"));
       }
+      GNUNET_assert (NULL != backend_url);
+      GNUNET_assert (NULL != backend_salt);
 
       if (0 == strcmp (method, "question"))
       {
@@ -1187,6 +1219,9 @@ initialize_policies (json_t *state)
                                            "policies");
 
   GNUNET_assert (json_is_array (json_policies));
+  json_t *rec_doc_uploads = json_array ();
+
+  GNUNET_assert (json_is_array (rec_doc_uploads));
   json_array_foreach (json_policies, p_index, json_policy)
   {
     size_t index;
@@ -1207,7 +1242,49 @@ initialize_policies (json_t *state)
       GNUNET_assert (NULL != tus_arr[auth_method_index]->truth);
       truths[truth_index] = tus_arr[auth_method_index]->truth;
       truth_index++;
+
+      {
+        // initialize recovery document uploads array
+        bool existing = false;
+        size_t upload_index;
+        json_t *upload;
+        json_t *provider_id = json_object_get (auth_method,
+                                               "provider");
+        if (0 < json_array_size (rec_doc_uploads))
+        {
+          json_array_foreach (rec_doc_uploads, upload_index, upload)
+          {
+            if (1 == json_equal (provider_id, json_object_get (upload,
+                                                               "provider")))
+            {
+              existing = true;
+              break;
+            }
+          }
+        }
+
+        if (! existing)
+        {
+          const char *id = json_string_value (provider_id);
+          const char *provider_url = get_provider_url_from_id (id,
+                                                               state);
+          GNUNET_assert (0 ==
+                         json_array_append (rec_doc_uploads,
+                                            json_pack ("{s:I, s:s, s:s}",
+                                                       "status",
+                                                       (json_int_t) 0,
+                                                       "provider",
+                                                       id,
+                                                       "provider_url",
+                                                       provider_url)));
+        }
+      }
     }
+    GNUNET_assert (0 ==
+                   json_object_set (state,
+                                    "recovery_document_uploads",
+                                    rec_doc_uploads));
+
     struct ANASTASIS_Policy *policy = ANASTASIS_policy_create (truths,
                                                                truth_index);
     GNUNET_array_append (policy_arr,
@@ -1298,6 +1375,7 @@ secret_share_payment_cb (void *cls,
   sss->cb (sss->cb_cls,
            ANASTASIS_EC_NONE,
            sss->state);
+  sss->cb = NULL;
   // FIXME: payment
 }
 
@@ -1335,7 +1413,7 @@ secret_share_result_cb (void *cls,
   {
     const char *url = json_string_value (
       json_object_get (upload,
-                       "backend_url"));
+                       "provider_url"));
     if (0 == strcmp (url, server_url))
     {
       GNUNET_assert (0 ==
@@ -1370,6 +1448,7 @@ secret_share_result_cb (void *cls,
       sss->cb (sss->cb_cls,
                ANASTASIS_EC_NONE,
                sss->state);
+      sss->cb = NULL;
       return;
     }
     json_t *error = json_pack ("{s:I, s:s}",
@@ -1380,6 +1459,7 @@ secret_share_result_cb (void *cls,
     sss->cb (sss->cb_cls,
              ANASTASIS_EC_INVALID,  // FIXME: ERROR CODE
              error);
+    sss->cb = NULL;
     return;
   }
   GNUNET_break (0);
@@ -1448,8 +1528,8 @@ upload_rec_documents (json_t *state,
                                      NULL,
                                      policy_arr,
                                      policy_arr_length,
-                                     NULL,
-                                     0,
+                                     NULL, // FIXME: payment details
+                                     0, // FIXME: payment details
                                      &secret_share_payment_cb,
                                      sss,
                                      &secret_share_result_cb,
@@ -1504,42 +1584,6 @@ truth_upload_cb (void *cls,
        == (size_t) tus_arr_length))
   {
     // try uploading recovery document
-    size_t t_index;
-    size_t rd_index;
-    json_t *truth;
-    json_t *truths = json_object_get (tus->state,
-                                      "truths");
-    json_t *rec_doc_uploads = json_array ();
-
-    GNUNET_assert (json_is_array (truths));
-    GNUNET_assert (json_is_array (rec_doc_uploads));
-    json_array_foreach (truths, t_index, truth)
-    {
-      json_t *upload;
-      json_t *backend_url = json_object_get (truth,
-                                             "backend_url");
-
-      json_array_foreach (rec_doc_uploads, rd_index, upload)
-      {
-        if (1 == json_equal (backend_url, json_object_get (upload,
-                                                           "backend_url")))
-          break;
-
-        GNUNET_assert (0 ==
-                       json_object_set_new (upload,
-                                            "backend_url",
-                                            backend_url));
-        GNUNET_assert (0 ==
-                       json_object_set_new (upload,
-                                            "status",
-                                            json_integer ((json_int_t) 0)));
-      }
-    }
-    GNUNET_assert (0 ==
-                   json_object_set_new (tus->state,
-                                        "recovery_document_uploads",
-                                        rec_doc_uploads));
-
     upload_rec_documents (tus->state,
                           tus->ctx,
                           tus->cb,
@@ -1584,6 +1628,7 @@ truth_payment_cb (void *cls,
     tus->cb (tus->cb_cls,
              ANASTASIS_EC_NONE,
              tus->state);
+    tus->cb = NULL;
     return;
   }
   ANASTASIS_redux_fail (tus->cb,
diff --git a/src/stasis/plugin_anastasis_postgres.c 
b/src/stasis/plugin_anastasis_postgres.c
index a0f97be..104c73f 100644
--- a/src/stasis/plugin_anastasis_postgres.c
+++ b/src/stasis/plugin_anastasis_postgres.c
@@ -758,7 +758,8 @@ postgres_increment_lifetime (void *cls,
       GNUNET_PQ_query_param_auto_from_type (anastasis_pub),
       GNUNET_PQ_query_param_end
     };
-
+    check_connection (pg);
+    postgres_preflight (pg);
     qs = GNUNET_PQ_eval_prepared_non_select (pg->conn,
                                              "recdoc_payment_done",
                                              params);

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