[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[taler-anastasis-gtk] branch master updated: fix
From: |
gnunet |
Subject: |
[taler-anastasis-gtk] branch master updated: fix |
Date: |
Tue, 13 Oct 2020 21:04:29 +0200 |
This is an automated email from the git hooks/post-receive script.
dennis-neufeld pushed a commit to branch master
in repository anastasis-gtk.
The following commit(s) were added to refs/heads/master by this push:
new db23bb7 fix
db23bb7 is described below
commit db23bb7d3d28ff13fcb779ca11162274a806488c
Author: Dennis Neufeld <dennis.neufeld@students.bfh.ch>
AuthorDate: Tue Oct 13 19:31:05 2020 +0200
fix
---
src/anastasis/anastasis-gtk_helper.c | 62 +++++++++++++++++++++++++++++-------
1 file changed, 51 insertions(+), 11 deletions(-)
diff --git a/src/anastasis/anastasis-gtk_helper.c
b/src/anastasis/anastasis-gtk_helper.c
index be6c94a..fdd19a8 100644
--- a/src/anastasis/anastasis-gtk_helper.c
+++ b/src/anastasis/anastasis-gtk_helper.c
@@ -311,25 +311,65 @@ action_cb (void *cls,
}
else
{
- size_t index;
- json_t *value;
-
// update authentication_providers
+ json_t *method_data;
+ const char *method_name;
json_t *methods = json_object_get (providers,
"authentication_providers");
- GNUNET_assert (0 ==
- json_object_update_recursive (methods,
- json_object_get
(response,
-
"config")));
+ json_t *config = json_object_get (response, "config");
+ GNUNET_assert (NULL != config);
+ json_t *provider_id = json_object_get (response, "provider");
+ GNUNET_assert (NULL != provider_id);
+ bool contains_method = false;
+
+ if (NULL != methods)
+ {
+ json_object_foreach (methods, method_name, method_data)
+ {
+ json_t *value;
+ const char* key;
+ json_object_foreach (config, key, value)
+ {
+ if (0 == strcmp (key, method_name))
+ {
+ json_t *provider;
+ size_t index;
+ json_t *provider_arr = json_object_get
(methods, method_name);
+ GNUNET_assert (NULL != provider_arr);
+ bool contains_provider = false;
+
+ json_array_foreach (provider_arr, index,
provider)
+ {
+ if (1 == json_equal (provider,
provider_id))
+ {
+ contains_provider = true;
+ break;
+ }
+ }
+ if (! contains_provider)
+ json_array_append_new (provider_arr,
json_array_get (value, 0));
+ contains_method = true;
+ break;
+ }
+ }
+ }
+ if (! contains_method)
+ GNUNET_assert (0 ==
+ json_object_update_recursive (methods,
+
json_object_get (response,
+
"config")));
+ }
// delete this provider from missing_providers
- json_t *provider_id = json_object_get (response, "provider");
- json_array_foreach (missing_providers, index, value)
+ size_t missing_index;
+ json_t *missing_value;
+
+ json_array_foreach (missing_providers, missing_index,
missing_value)
{
- json_t *temp_provider_id = json_object_get (value,
+ json_t *temp_provider_id = json_object_get (missing_value,
"provider_id");
if (1 == json_equal (provider_id, temp_provider_id))
{
- json_array_remove (missing_providers, index);
+ json_array_remove (missing_providers, missing_index);
break;
}
}
--
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [taler-anastasis-gtk] branch master updated: fix,
gnunet <=