gnunet-svn
[Top][All Lists]
Advanced

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

[taler-anastasis] 01/02: fix


From: gnunet
Subject: [taler-anastasis] 01/02: fix
Date: Tue, 13 Oct 2020 21:04:26 +0200

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

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

commit 35784415a5df48f563704a9bfcc534328857e6b3
Author: Dennis Neufeld <dennis.neufeld@students.bfh.ch>
AuthorDate: Tue Oct 13 19:31:55 2020 +0200

    fix
---
 src/lib/anastasis_api_backup_redux.c | 23 ++++++++++++++---------
 src/lib/anastasis_api_redux.c        |  7 +++++--
 2 files changed, 19 insertions(+), 11 deletions(-)

diff --git a/src/lib/anastasis_api_backup_redux.c 
b/src/lib/anastasis_api_backup_redux.c
index ab4d039..af3386c 100644
--- a/src/lib/anastasis_api_backup_redux.c
+++ b/src/lib/anastasis_api_backup_redux.c
@@ -224,10 +224,10 @@ provider_candidate (struct PolicyBuilder *pb,
   method_providers = json_object_get (pb->providers,
                                       method_name);
   int num_prov = json_array_size (method_providers);
-  for (unsigned int j = 0; j<num_prov; j++)
+  for (unsigned int j = 0; j < num_prov; j++)
   {
     prov_sel[i] = j;
-    if (i == num_prov)
+    if (i == pb->req_methods - 1)
     {
       eval_provider_selection (pb,
                                prov_sel);
@@ -251,6 +251,7 @@ go_with (struct PolicyBuilder *pb,
   pb->best_diversity = 0;
   pb->best_sel = best_sel;
   pb->m_idx = m_idx;
+
   provider_candidate (pb,
                       prov_sel,
                       0);
@@ -258,8 +259,9 @@ go_with (struct PolicyBuilder *pb,
   GNUNET_assert (GNUNET_OK ==
                  TALER_amount_get_zero (currency,
                                         &recovery_cost));
+
   json_t *method_arr = json_array ();
-  for (unsigned int i = 0; i<pb->req_methods; i++)
+  for (unsigned int i = 0; i < pb->req_methods; i++)
   {
     json_t *method_obj = json_array_get (pb->methods,
                                          m_idx[i]);
@@ -269,17 +271,19 @@ go_with (struct PolicyBuilder *pb,
                                                 method_name);
     json_t *provider_obj = json_array_get (method_providers,
                                            best_sel[i]);
-    const char *provider_name = json_string_value (json_object_get (
-                                                     provider_obj,
-                                                     "provider"));
+    void *provider_obj_iter = json_object_iter (provider_obj);
+    const char *provider_name = json_object_iter_key (provider_obj_iter);
     json_t *policy_method = json_pack ("{s:i, s:s}",
                                        "authentication_method", m_idx[i],
                                        "provider", provider_name);
     json_array_append_new (method_arr, policy_method);
+
     struct TALER_Amount method_cost;
+    json_t *provider_data = json_object_get (provider_obj, provider_name);
+
     GNUNET_assert (GNUNET_OK ==
                    TALER_string_to_amount (
-                     json_string_value (json_object_get (provider_obj,
+                     json_string_value (json_object_get (provider_data,
                                                          "method_cost")),
                      &method_cost));
     if (0 >
@@ -291,10 +295,11 @@ go_with (struct PolicyBuilder *pb,
       return;
     }
   }
-  json_t *policy = json_pack ("{s:i, s:i}",
+  json_t *policy = json_pack ("{s:o, s:o}",
                               "recovery_cost",
                               TALER_JSON_from_amount (&recovery_cost),
                               "methods", method_arr);
+  json_array_append_new (pb->policies, policy);
 }
 
 
@@ -309,7 +314,6 @@ method_candidate (struct PolicyBuilder *pb,
     start = m_idx[i - 1];
   for (unsigned int j = start; j < pb->num_methods; j++)
   {
-    m_idx[i] = j;
     if (i == pb->req_methods)
     {
       go_with (pb,
@@ -318,6 +322,7 @@ method_candidate (struct PolicyBuilder *pb,
     }
     else
     {
+      m_idx[i] = j;
       method_candidate (pb,
                         m_idx,
                         i + 1);
diff --git a/src/lib/anastasis_api_redux.c b/src/lib/anastasis_api_redux.c
index 4bab722..847f371 100644
--- a/src/lib/anastasis_api_redux.c
+++ b/src/lib/anastasis_api_redux.c
@@ -210,6 +210,8 @@ config_cb (void *cls,
       GNUNET_assert (NULL != provider_id);
       json_t *method_data = json_object ();
       GNUNET_assert (NULL != method_data);
+      json_t *provider_arr = json_array ();
+      GNUNET_assert (NULL != provider_arr);
 
       GNUNET_assert (0 == json_object_set_new (method_data,
                                                "method_cost",
@@ -222,10 +224,11 @@ config_cb (void *cls,
       GNUNET_assert (0 == json_object_set_new (provider_id,
                                                cs->server->backend_id,
                                                method_data));
-
+      GNUNET_assert (0 == json_array_append_new (provider_arr,
+                                                 provider_id));
       GNUNET_assert (0 == json_object_set_new (provider_method,
                                                json_string_value (method_type),
-                                               provider_id));
+                                               provider_arr));
 
       GNUNET_assert (0 == json_object_set_new (config,
                                                "config",

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