gnunet-svn
[Top][All Lists]
Advanced

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

[taler-anastasis] 05/15: fix curl fini error


From: gnunet
Subject: [taler-anastasis] 05/15: fix curl fini error
Date: Sun, 31 Jan 2021 17:06:11 +0100

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

dennis-neufeld pushed a commit to branch master
in repository anastasis.

commit 283cd4cd2b6d108cfa96cafeb12e0db1b86bba65
Author: Dennis Neufeld <dennis.neufeld@students.bfh.ch>
AuthorDate: Mon Jan 18 17:47:17 2021 +0100

    fix curl fini error
---
 src/lib/anastasis_api_redux.c | 52 +++++++++++++++++++++++++++++++++++++------
 1 file changed, 45 insertions(+), 7 deletions(-)

diff --git a/src/lib/anastasis_api_redux.c b/src/lib/anastasis_api_redux.c
index d9428dc..d00a31d 100644
--- a/src/lib/anastasis_api_redux.c
+++ b/src/lib/anastasis_api_redux.c
@@ -240,8 +240,6 @@ struct RecoverSecretState
    * callback (#DispatchHandler) to call during/after operation
    */
   ANASTASIS_ActionCallback cb;
-
-  struct GNUNET_SCHEDULER_Task *tt;
 };
 
 
@@ -952,12 +950,9 @@ policy_lookup_cb (void *cls,
   json_t *challenge_information;
   struct RecoverSecretState *rss = cls;
 
-  if (NULL != rss->tt)
-    GNUNET_SCHEDULER_cancel (rss->tt);
-  rss->tt = NULL;
-
   challenge_information = json_object_get (rss->state,
                                            "challenge_information");
+  rss->recovery = NULL;
   if (NULL == challenge_information)
   {
     challenge_information = json_array ();
@@ -1017,6 +1012,42 @@ policy_lookup_cb (void *cls,
 }
 
 
+static void
+delayed_abort (void *cls)
+{
+  struct ANASTASIS_Recovery *recovery = cls;
+  ANASTASIS_recovery_abort (recovery);
+}
+
+
+/**
+ * Function to free a #RecoverSecretState.
+ *
+ * @param cls closure for a #RecoverSecretState.
+ */
+static void
+free_enter_user_attributes (void *cls)
+{
+  struct RecoverSecretState *rss = cls;
+
+  if (NULL != rss->recovery)
+  {
+    /* must run first, or at least before #core_secret_cb */
+    (void) GNUNET_SCHEDULER_add_with_priority (
+      GNUNET_SCHEDULER_PRIORITY_SHUTDOWN,
+      &delayed_abort,
+      rss->recovery);
+    rss->recovery = NULL;
+  }
+  json_decref (rss->state);
+  json_decref (rss->id_data);
+  GNUNET_free (rss->ri->cs);
+  GNUNET_free (rss->ri->dps);
+  GNUNET_free (rss->ri);
+  GNUNET_free (rss);
+}
+
+
 /**
  * DispatchHandler/Callback function which is called for a
  * "enter_user_attributes" action.
@@ -1217,7 +1248,14 @@ enter_user_attributes (json_t *state,
         }
       }
     }
-    return NULL;
+    {
+      struct ANASTASIS_ReduxAction *ra;
+
+      ra = GNUNET_new (struct ANASTASIS_ReduxAction);
+      ra->cleanup_cls = rss;
+      ra->cleanup = free_enter_user_attributes;
+      return ra;
+    }
   }
 }
 

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