gnunet-svn
[Top][All Lists]
Advanced

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

[taler-anastasis] branch master updated: deduplicate code


From: gnunet
Subject: [taler-anastasis] branch master updated: deduplicate code
Date: Sat, 13 Mar 2021 13:03:03 +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 e68a3fc  deduplicate code
e68a3fc is described below

commit e68a3fc87a8c25481321447df36d897a1f3028f3
Author: Christian Grothoff <christian@grothoff.org>
AuthorDate: Sat Mar 13 12:57:44 2021 +0100

    deduplicate code
---
 contrib/gana                             |  2 +-
 src/reducer/anastasis_api_backup_redux.c | 57 +++-----------------------------
 src/reducer/anastasis_api_redux.c        | 29 ++++++++++++----
 src/reducer/anastasis_api_redux.h        | 18 ++++++++++
 4 files changed, 45 insertions(+), 61 deletions(-)

diff --git a/contrib/gana b/contrib/gana
index 880352a..943729d 160000
--- a/contrib/gana
+++ b/contrib/gana
@@ -1 +1 @@
-Subproject commit 880352a419beee4864f863182dbc695c859ee3f7
+Subproject commit 943729d4e2c2d97c3b5d737cf76b388086d94378
diff --git a/src/reducer/anastasis_api_backup_redux.c 
b/src/reducer/anastasis_api_backup_redux.c
index cd3206c..a44a950 100644
--- a/src/reducer/anastasis_api_backup_redux.c
+++ b/src/reducer/anastasis_api_backup_redux.c
@@ -780,60 +780,11 @@ add_provider (json_t *state,
               ANASTASIS_ActionCallback cb,
               void *cb_cls)
 {
-  json_t *urls;
-  json_t *tlist;
-
-  tlist = json_object_get (state,
-                           "authentication_providers");
-  if (NULL == tlist)
-  {
-    tlist = json_object ();
-    GNUNET_assert (NULL != tlist);
-    GNUNET_assert (0 ==
-                   json_object_set_new (state,
-                                        "authentication_providers",
-                                        tlist));
-  }
-  if (NULL == arguments)
-  {
-    ANASTASIS_redux_fail_ (cb,
-                           cb_cls,
-                           TALER_EC_ANASTASIS_REDUCER_INPUT_INVALID,
-                           "arguments missing");
-    return NULL;
-  }
-  urls = json_object_get (arguments,
-                          "urls");
-  if (NULL == urls)
-  {
-    ANASTASIS_redux_fail_ (cb,
-                           cb_cls,
-                           TALER_EC_ANASTASIS_REDUCER_INPUT_INVALID,
-                           "'urls' missing");
+  if (ANASTASIS_add_provider_ (state,
+                               arguments,
+                               cb,
+                               cb_cls))
     return NULL;
-  }
-  {
-    size_t index;
-    json_t *url;
-
-    json_array_foreach (urls, index, url)
-    {
-      const char *url_str = json_string_value (url);
-
-      if (NULL == url_str)
-      {
-        ANASTASIS_redux_fail_ (cb,
-                               cb_cls,
-                               TALER_EC_ANASTASIS_REDUCER_INPUT_INVALID,
-                               "'urls' must be strings");
-        return NULL;
-      }
-      GNUNET_assert (0 ==
-                     json_object_set_new (tlist,
-                                          url_str,
-                                          json_object ()));
-    }
-  }
   return ANASTASIS_REDUX_backup_begin_ (state,
                                         NULL,
                                         cb,
diff --git a/src/reducer/anastasis_api_redux.c 
b/src/reducer/anastasis_api_redux.c
index fe68630..8a2df70 100644
--- a/src/reducer/anastasis_api_redux.c
+++ b/src/reducer/anastasis_api_redux.c
@@ -1317,6 +1317,24 @@ add_provider (json_t *state,
               const json_t *arguments,
               ANASTASIS_ActionCallback cb,
               void *cb_cls)
+{
+  if (ANASTASIS_add_provider_ (state,
+                               arguments,
+                               cb,
+                               cb_cls))
+    return NULL;
+  cb (cb_cls,
+      TALER_EC_NONE,
+      state);
+  return NULL;
+}
+
+
+bool
+ANASTASIS_add_provider_ (json_t *state,
+                         const json_t *arguments,
+                         ANASTASIS_ActionCallback cb,
+                         void *cb_cls)
 {
   json_t *urls;
   json_t *tlist;
@@ -1338,7 +1356,7 @@ add_provider (json_t *state,
                            cb_cls,
                            TALER_EC_ANASTASIS_REDUCER_INPUT_INVALID,
                            "arguments missing");
-    return NULL;
+    return true;
   }
   urls = json_object_get (arguments,
                           "urls");
@@ -1348,7 +1366,7 @@ add_provider (json_t *state,
                            cb_cls,
                            TALER_EC_ANASTASIS_REDUCER_INPUT_INVALID,
                            "'urls' missing");
-    return NULL;
+    return true;
   }
   {
     size_t index;
@@ -1364,7 +1382,7 @@ add_provider (json_t *state,
                                cb_cls,
                                TALER_EC_ANASTASIS_REDUCER_INPUT_INVALID,
                                "'urls' must be strings");
-        return NULL;
+        return true;
       }
       GNUNET_assert (0 ==
                      json_object_set_new (tlist,
@@ -1372,10 +1390,7 @@ add_provider (json_t *state,
                                           json_object ()));
     }
   }
-  cb (cb_cls,
-      TALER_EC_NONE,
-      state);
-  return NULL;
+  return false;
 }
 
 
diff --git a/src/reducer/anastasis_api_redux.h 
b/src/reducer/anastasis_api_redux.h
index 5487eb6..306caf9 100644
--- a/src/reducer/anastasis_api_redux.h
+++ b/src/reducer/anastasis_api_redux.h
@@ -179,6 +179,24 @@ ANASTASIS_redux_fail_ (ANASTASIS_ActionCallback cb,
                        const char *detail);
 
 
+/**
+ * DispatchHandler/Callback function which is called for a
+ * "add_provider" action.  Adds another Anastasis provider
+ * to the list of available providers for storing information.
+ *
+ * @param state state to operate on
+ * @param arguments arguments with a provider URL to add
+ * @param cb callback to call during/after operation
+ * @param cb_cls callback closure
+ * @return true if @a cb was invoked
+ */
+bool
+ANASTASIS_add_provider_ (json_t *state,
+                         const json_t *arguments,
+                         ANASTASIS_ActionCallback cb,
+                         void *cb_cls);
+
+
 /**
  * Adds the server configuration of the Anastasis provider
  * at @a url to the json @a state.  Checks if we have

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