[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[taler-anastasis] 03/08: fix
From: |
gnunet |
Subject: |
[taler-anastasis] 03/08: fix |
Date: |
Fri, 09 Oct 2020 12:03:44 +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 525c82e59087ceeb1e6e85921aa353e374333235
Author: Dennis Neufeld <dennis.neufeld@students.bfh.ch>
AuthorDate: Wed Oct 7 10:48:05 2020 +0200
fix
---
src/include/anastasis_redux.h | 4 ++++
src/lib/anastasis_api_backup_redux.c | 38 ++++++++++++++++++++++++++++++++----
src/lib/anastasis_api_redux.c | 10 +++++++++-
3 files changed, 47 insertions(+), 5 deletions(-)
diff --git a/src/include/anastasis_redux.h b/src/include/anastasis_redux.h
index 4adc474..ea811ad 100644
--- a/src/include/anastasis_redux.h
+++ b/src/include/anastasis_redux.h
@@ -43,6 +43,10 @@ extern json_t *redux_id_attr;
*/
extern json_t *provider_list;
+/**
+ * Currency of chosen country
+ */
+extern char *currency;
/**
* Returns an initial ANASTASIS backup state.
diff --git a/src/lib/anastasis_api_backup_redux.c
b/src/lib/anastasis_api_backup_redux.c
index 8fc4e09..e1e7167 100644
--- a/src/lib/anastasis_api_backup_redux.c
+++ b/src/lib/anastasis_api_backup_redux.c
@@ -249,6 +249,7 @@ static void
go_with (struct PolicyBuilder *pb,
const unsigned int *m_idx)
{
+ struct TALER_Amount recovery_cost;
unsigned int best_sel[pb->req_methods];
unsigned int prov_sel[pb->req_methods];
@@ -259,17 +260,46 @@ go_with (struct PolicyBuilder *pb,
prov_sel,
0);
+ 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++)
{
+ json_t *method_obj = json_array_get (pb->methods,
+ m_idx[i]);
+ json_t *method_name = json_string_value (json_object_get (method_obj,
+ "method"));
+ json_t *method_providers = json_object_get (pb->providers,
+ 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"));
- json_object_pack ("{s:i, s:s}",
- "authentication_method", m_idx[i],
- "provider", provider_name);
+ 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;
+ GNUNET_assert (GNUNET_OK ==
+ TALER_string_to_amount (
+ json_string_value (json_object_get (provider_obj,
+ "method_cost")),
+ &method_cost));
+ if (0 >
+ TALER_amount_add (&recovery_cost,
+ &recovery_cost,
+ &method_cost))
+ {
+ GNUNET_break (0);
+ return;
+ }
}
+ json_t *policy = json_pack ("{s:i, s:i}",
+ "recovery_cost",
+ TALER_JSON_from_amount (&recovery_cost),
+ "methods", method_arr);
}
@@ -282,7 +312,7 @@ method_candidate (struct PolicyBuilder *pb,
if (i > 0)
start = m_idx[i - 1];
- for (unsigned int j = start; j<pb->num_methods; j++)
+ for (unsigned int j = start; j < pb->num_methods; j++)
{
m_idx[i] = j;
if (i == pb->req_methods)
diff --git a/src/lib/anastasis_api_redux.c b/src/lib/anastasis_api_redux.c
index 60180ec..003f432 100644
--- a/src/lib/anastasis_api_redux.c
+++ b/src/lib/anastasis_api_redux.c
@@ -41,6 +41,11 @@ json_t *redux_id_attr;
*/
json_t *provider_list;
+/**
+ * Currency of chosen country
+ */
+char *currency;
+
/**
* Callback function FIXME: Description.
@@ -225,6 +230,9 @@ select_country (const json_t *state,
GNUNET_assert (NULL != state);
const char *s_mode = get_state_mode (state);
GNUNET_assert (NULL != s_mode);
+ currency = json_string_value (json_object_get (arguments,
+ "country_currency"));
+ GNUNET_assert (NULL != currency);
GNUNET_assert (GNUNET_SYSERR !=
redux_id_attr_init (json_string_value (country)));
root = json_object_get (redux_id_attr, "required_attributes");
@@ -294,7 +302,7 @@ enter_user_attributes (const json_t *state,
json_t *root;
char *dn;
json_error_t error;
- json_t *attributes = json_object_get (arguments, "identity");
+ json_t *attributes = json_object_get (arguments, "identity_attributes");
GNUNET_assert (NULL != attributes);
GNUNET_assert (NULL != state);
--
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.
- [taler-anastasis] branch master updated (f4aa746 -> 1586ccd), gnunet, 2020/10/09
- [taler-anastasis] 04/08: fix, gnunet, 2020/10/09
- [taler-anastasis] 02/08: fixes, gnunet, 2020/10/09
- [taler-anastasis] 03/08: fix,
gnunet <=
- [taler-anastasis] 06/08: fix, gnunet, 2020/10/09
- [taler-anastasis] 01/08: fixes, gnunet, 2020/10/09
- [taler-anastasis] 05/08: fix changing continent, gnunet, 2020/10/09
- [taler-anastasis] 07/08: enumerate states, gnunet, 2020/10/09
- [taler-anastasis] 08/08: rework add_authentication, gnunet, 2020/10/09