gnunet-svn
[Top][All Lists]
Advanced

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

[taler-anastasis] branch master updated: add discussion about need for a


From: gnunet
Subject: [taler-anastasis] branch master updated: add discussion about need for another transition
Date: Fri, 21 Jan 2022 11:41:25 +0100

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

grothoff pushed a commit to branch master
in repository anastasis.

The following commit(s) were added to refs/heads/master by this push:
     new 37d1d11  add discussion about need for another transition
37d1d11 is described below

commit 37d1d112520f0b42c3e50d262ea139f25d093fbc
Author: Christian Grothoff <christian@grothoff.org>
AuthorDate: Fri Jan 21 11:41:16 2022 +0100

    add discussion about need for another transition
---
 doc/sphinx/reducer.rst                            | 23 +++++++++++---
 src/cli/test_anastasis_reducer_recovery_no_pay.sh |  1 +
 src/reducer/anastasis_api_recovery_redux.c        | 37 ++++++++---------------
 3 files changed, 33 insertions(+), 28 deletions(-)

diff --git a/doc/sphinx/reducer.rst b/doc/sphinx/reducer.rst
index cc696a9..5a92d9d 100644
--- a/doc/sphinx/reducer.rst
+++ b/doc/sphinx/reducer.rst
@@ -1369,14 +1369,12 @@ choose which challenges to satisfy:
           {
             "uuid": "MW2R3RCBZPHNC78AW8AKWRCHF9KV3Y82EN62T831ZP54S3K5599G",
             "uuid-display": "MW2R3RC",
-            "cost": "TESTKUDOS:0",
             "type": "question",
             "instructions": "q1"
           },
           {
             "uuid": "TXYKGE1SJZHJ4M2FKSV1P2RZVNTHZFB9E3A79QE956D3SCAWXPK0",
             "uuid-display": "TXYKGE",
-            "cost": "TESTKUDOS:0",
             "type": "email",
             "instructions": "e-mail address m?il@f*.bar"
           },
@@ -1415,8 +1413,6 @@ four mandatory fields:
       send to the user.  Allows the user to
       distinguish different PIN/TANs should say the same phone number be
       used for SMS-authentication with different providers.
-    - **cost**: This is the amount the Anastasis provider will charge
-      to allow the user to pass the challenge.
     - **type**: This is the type of the challenge, as a string.
     - **instructions**: Contains additional important hints for the user
       to allow the user to satisfy the challenge.  It typically includes
@@ -1447,6 +1443,25 @@ However, in general it should be sufficient to display 
the slightly
 more generic Taler error code that is returned with the new state.
 
 
+**FIXME: add new transition: sync_providers**
+
+The downloaded policy may include secrets from providers for which
+we do not (yet) have the cost structure or even the salt. So here
+a client/UI should have _again_ the opportunity to explicitly request
+providers to be downloaded to fill in missing cost(s) and salts.
+
+As providers may fail to respond, this action may need to be called
+repeatedly ("sync" button in the UI?).  Once all providers are in
+'sync', that button should be hidden/obscured.  Alternatively, we
+may want to enable long-polling on this one => no button!
+
+Furthermore, we likely need an additional *error* case in case a
+challenge is selected for which the provider details are unknown
+(invalid input!), and the UI should somehow disable buttons for
+challenges for which the provider details are unknown.
+
+
+
 **select_challenge:**
 
 Selecting a challenge takes different, depending on the state of the payment.
diff --git a/src/cli/test_anastasis_reducer_recovery_no_pay.sh 
b/src/cli/test_anastasis_reducer_recovery_no_pay.sh
index 10f6968..a80b030 100755
--- a/src/cli/test_anastasis_reducer_recovery_no_pay.sh
+++ b/src/cli/test_anastasis_reducer_recovery_no_pay.sh
@@ -220,6 +220,7 @@ anastasis-reducer -a '{"provider_url" : 
"http://localhost:8086/"; }' add_provider
 echo " OK"
 
 echo -n "Selecting secret to recover"
+bash
 anastasis-reducer -a '{"version": 0, "mask": 0, "provider_url" : 
"http://localhost:8086/"; }' next < $R1FILE > $R2FILE
 
 STATE=`jq -r -e .recovery_state < $R2FILE`
diff --git a/src/reducer/anastasis_api_recovery_redux.c 
b/src/reducer/anastasis_api_recovery_redux.c
index b93b5e6..791ed9f 100644
--- a/src/reducer/anastasis_api_recovery_redux.c
+++ b/src/reducer/anastasis_api_recovery_redux.c
@@ -2036,6 +2036,10 @@ lookup_cost (const json_t *state,
   const json_t *methods;
 
   *ec = TALER_EC_NONE;
+  GNUNET_log (GNUNET_ERROR_TYPE_INFO,
+              "Looking up cost for provider `%s' and method `%s'\n",
+              provider_url,
+              type);
   providers = json_object_get (state,
                                "authentication_providers");
   if (NULL == providers)
@@ -2056,9 +2060,15 @@ lookup_cost (const json_t *state,
       json_integer_value (json_object_get (provider,
                                            "http_status")))
   {
-    *ec = json_integer_value (json_object_get (provider,
-                                               "error_code"));
-    return GNUNET_SYSERR;
+    json_t *eco;
+
+    eco = json_object_get (provider,
+                           "error_code");
+    if (NULL != eco)
+      *ec = json_integer_value (eco);
+    else
+      *ec = TALER_EC_ANASTASIS_REDUCER_PROVIDER_INVALID_CONFIG;
+    return GNUNET_NO;
   }
   methods = json_object_get (provider,
                              "methods");
@@ -2172,30 +2182,9 @@ policy_lookup_cb (void *cls,
     enum TALER_ErrorCode ec;
 
     cd = ANASTASIS_challenge_get_details (c);
-    ret = lookup_cost (pd->state,
-                       cd->provider_url,
-                       cd->type,
-                       &cost,
-                       &ec);
-    if (GNUNET_SYSERR == ret)
-    {
-      json_decref (challenges);
-      json_decref (policies);
-      ANASTASIS_redux_fail_ (pd->cb,
-                             pd->cb_cls,
-                             ec,
-                             "failed to 'lookup_cost'");
-      free_pd (pd);
-      return;
-    }
-
     cj = GNUNET_JSON_PACK (
       GNUNET_JSON_pack_data_auto ("uuid",
                                   &cd->uuid),
-      TALER_JSON_pack_amount ("cost",
-                              (GNUNET_NO == ret)
-                              ? NULL
-                              : &cost),
       GNUNET_JSON_pack_string ("type",
                                cd->type),
       GNUNET_JSON_pack_string ("uuid-display",

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