gnunet-svn
[Top][All Lists]
Advanced

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

[taler-merchant] 13/24: bugfix pickup DLL mangement logic


From: gnunet
Subject: [taler-merchant] 13/24: bugfix pickup DLL mangement logic
Date: Wed, 17 Nov 2021 12:44:36 +0100

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

grothoff pushed a commit to branch master
in repository merchant.

commit 3a6cdc4dc180b2f1dc8b761b613b34481b1ea3c1
Author: Christian Grothoff <christian@grothoff.org>
AuthorDate: Thu Nov 4 19:23:16 2021 +0100

    bugfix pickup DLL mangement logic
---
 .../taler-merchant-httpd_post-tips-ID-pickup.c     | 23 +++++++++++++++++++++-
 1 file changed, 22 insertions(+), 1 deletion(-)

diff --git a/src/backend/taler-merchant-httpd_post-tips-ID-pickup.c 
b/src/backend/taler-merchant-httpd_post-tips-ID-pickup.c
index fc4c6bda..4336462e 100644
--- a/src/backend/taler-merchant-httpd_post-tips-ID-pickup.c
+++ b/src/backend/taler-merchant-httpd_post-tips-ID-pickup.c
@@ -252,11 +252,17 @@ pick_context_cleanup (void *cls)
 void
 TMH_force_tip_pickup_resume ()
 {
+  struct PickupContext *nxt;
+
   for (struct PickupContext *pc = pc_head;
        NULL != pc;
-       pc = pc->next)
+       pc = nxt)
   {
+    nxt = pc->next;
     stop_operations (pc);
+    GNUNET_CONTAINER_DLL_remove (pc_head,
+                                 pc_tail,
+                                 pc);
     MHD_resume_connection (pc->connection);
   }
 }
@@ -293,6 +299,9 @@ withdraw_cb (void *cls,
       TALER_MHD_MAKE_JSON_PACK (
         TALER_JSON_pack_ec (TALER_EC_MERCHANT_TIP_PICKUP_EXCHANGE_ERROR),
         TMH_pack_exchange_reply (hr));
+    GNUNET_CONTAINER_DLL_remove (pc_head,
+                                 pc_tail,
+                                 pc);
     MHD_resume_connection (pc->connection);
     TALER_MHD_daemon_trigger ();   /* we resumed, kick MHD */
     return;
@@ -309,6 +318,9 @@ withdraw_cb (void *cls,
     pc->response = TALER_MHD_make_error (
       TALER_EC_GENERIC_DB_STORE_FAILED,
       "blind signature");
+    GNUNET_CONTAINER_DLL_remove (pc_head,
+                                 pc_tail,
+                                 pc);
     MHD_resume_connection (pc->connection);
     TALER_MHD_daemon_trigger ();   /* we resumed, kick MHD */
     return;
@@ -316,6 +328,9 @@ withdraw_cb (void *cls,
   if (NULL == pc->po_head)
   {
     stop_operations (pc); /* stops timeout job */
+    GNUNET_CONTAINER_DLL_remove (pc_head,
+                                 pc_tail,
+                                 pc);
     MHD_resume_connection (pc->connection);
     TALER_MHD_daemon_trigger ();   /* we resumed, kick MHD */
   }
@@ -438,6 +453,9 @@ do_timeout (void *cls)
   pc->response =  TALER_MHD_make_error (
     TALER_EC_MERCHANT_GENERIC_EXCHANGE_TIMEOUT,
     NULL);
+  GNUNET_CONTAINER_DLL_remove (pc_head,
+                               pc_tail,
+                               pc);
   MHD_resume_connection (pc->connection);
   TALER_MHD_daemon_trigger ();   /* we resumed, kick MHD */
 }
@@ -956,6 +974,9 @@ RETRY:
                                        NULL);
   }
   MHD_suspend_connection (connection);
+  GNUNET_CONTAINER_DLL_insert (pc_head,
+                               pc_tail,
+                               pc);
   pc->tt = GNUNET_SCHEDULER_add_delayed (EXCHANGE_TIMEOUT,
                                          &do_timeout,
                                          pc);

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