[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[taler-anastasis] branch master updated: support providing provider_url
From: |
gnunet |
Subject: |
[taler-anastasis] branch master updated: support providing provider_url when downloading policy |
Date: |
Sat, 20 Mar 2021 11:19:50 +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 aa1f22f support providing provider_url when downloading policy
aa1f22f is described below
commit aa1f22f8c9695ab2464f14f3511ad71dfcd4e945
Author: Christian Grothoff <grothoff@gnunet.org>
AuthorDate: Sat Mar 20 11:19:44 2021 +0100
support providing provider_url when downloading policy
---
src/reducer/anastasis_api_recovery_redux.c | 61 +++++++++++++++++++++---------
1 file changed, 43 insertions(+), 18 deletions(-)
diff --git a/src/reducer/anastasis_api_recovery_redux.c
b/src/reducer/anastasis_api_recovery_redux.c
index 1c76f3b..a400085 100644
--- a/src/reducer/anastasis_api_recovery_redux.c
+++ b/src/reducer/anastasis_api_recovery_redux.c
@@ -2196,6 +2196,36 @@ provider_added_cb (void *cls,
}
+/**
+ * Start to query provider for recovery document.
+ *
+ * @param[in,out] rss overall recovery state
+ * @param provider_url base URL of the provider to query
+ */
+static void
+begin_query_provider (struct RecoverSecretState *rss,
+ const char *provider_url)
+{
+ struct RecoveryStartStateProviderEntry *pe;
+ json_t *istate;
+
+ pe = GNUNET_new (struct RecoveryStartStateProviderEntry);
+ pe->rss = rss;
+ istate = json_object ();
+ GNUNET_assert (NULL != istate);
+ GNUNET_CONTAINER_DLL_insert (rss->pe_head,
+ rss->pe_tail,
+ pe);
+ pe->ra = ANASTASIS_REDUX_add_provider_to_state_ (provider_url,
+ istate,
+ &provider_added_cb,
+ pe);
+ json_decref (istate);
+ if (NULL != pe->ra)
+ rss->pending++;
+}
+
+
struct ANASTASIS_ReduxAction *
ANASTASIS_REDUX_recovery_challenge_begin_ (json_t *state,
const json_t *arguments,
@@ -2206,6 +2236,7 @@ ANASTASIS_REDUX_recovery_challenge_begin_ (json_t *state,
json_t *providers;
const json_t *attributes;
struct RecoverSecretState *rss;
+ const char *provider_url;
providers = json_object_get (state,
"authentication_providers");
@@ -2243,29 +2274,23 @@ ANASTASIS_REDUX_recovery_challenge_begin_ (json_t
*state,
rss->state = json_incref (state);
rss->cb = cb;
rss->cb_cls = cb_cls;
-
rss->pending = 1; /* decremented after initialization loop */
+
+ provider_url = json_string_value (json_object_get (arguments,
+ "provider_url"));
+ if (NULL != provider_url)
+ {
+ begin_query_provider (rss,
+ provider_url);
+ }
+ else
{
json_t *prov;
const char *url;
+
json_object_foreach (providers, url, prov) {
- struct RecoveryStartStateProviderEntry *pe;
- json_t *istate;
-
- pe = GNUNET_new (struct RecoveryStartStateProviderEntry);
- pe->rss = rss;
- istate = json_object ();
- GNUNET_assert (NULL != istate);
- GNUNET_CONTAINER_DLL_insert (rss->pe_head,
- rss->pe_tail,
- pe);
- pe->ra = ANASTASIS_REDUX_add_provider_to_state_ (url,
- istate,
- &provider_added_cb,
- pe);
- json_decref (istate);
- if (NULL != pe->ra)
- rss->pending++;
+ begin_query_provider (rss,
+ url);
}
}
rss->pending--;
--
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [taler-anastasis] branch master updated: support providing provider_url when downloading policy,
gnunet <=