gnunet-svn
[Top][All Lists]
Advanced

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

[taler-exchange] branch master updated: -address fIXMEs in kyc-tester


From: gnunet
Subject: [taler-exchange] branch master updated: -address fIXMEs in kyc-tester
Date: Tue, 09 Aug 2022 15:06:55 +0200

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

grothoff pushed a commit to branch master
in repository exchange.

The following commit(s) were added to refs/heads/master by this push:
     new b061ea85 -address fIXMEs in kyc-tester
b061ea85 is described below

commit b061ea85c84facfc78c34edface367c5f040bc9c
Author: Christian Grothoff <christian@grothoff.org>
AuthorDate: Tue Aug 9 15:06:53 2022 +0200

    -address fIXMEs in kyc-tester
---
 src/kyclogic/taler-exchange-kyc-tester.c | 77 +++++++++++++++++++++-----------
 1 file changed, 50 insertions(+), 27 deletions(-)

diff --git a/src/kyclogic/taler-exchange-kyc-tester.c 
b/src/kyclogic/taler-exchange-kyc-tester.c
index a389b081..eecd6b83 100644
--- a/src/kyclogic/taler-exchange-kyc-tester.c
+++ b/src/kyclogic/taler-exchange-kyc-tester.c
@@ -60,6 +60,11 @@ struct TEKT_RequestContext
    */
   struct MHD_Connection *connection;
 
+  /**
+   * HTTP response to return (or NULL).
+   */
+  struct MHD_Response *response;
+
   /**
    * @e rh-specific cleanup routine. Function called
    * upon completion of the request that should
@@ -74,6 +79,13 @@ struct TEKT_RequestContext
    * Can be NULL.
    */
   void *rh_ctx;
+
+  /**
+   * HTTP status to return upon resume if @e response
+   * is non-NULL.
+   */
+  unsigned int http_status;
+
 };
 
 
@@ -649,9 +661,16 @@ proof_cb (
 {
   struct ProofRequestState *rs = cls;
 
+  GNUNET_log (GNUNET_ERROR_TYPE_MESSAGE,
+              "KYC legitimization %s completed with status %d (%u) for %s\n",
+              provider_legitimization_id,
+              status,
+              http_status,
+              provider_user_id);
   MHD_resume_connection (rs->rc->connection);
-  // FIXME: kick MHD event loop!
-  // FIXME: actually queue response...
+  TALER_MHD_daemon_trigger ();
+  rs->rc->response = response;
+  rs->rc->http_status = http_status;
   GNUNET_CONTAINER_DLL_remove (rs_head,
                                rs_tail,
                                rs);
@@ -921,6 +940,15 @@ proceed_with_handler (struct TEKT_RequestContext *rc,
 }
 
 
+static void
+rh_cleaner_cb (struct TEKT_RequestContext *rc)
+{
+  if (NULL != rc->response)
+    MHD_destroy_response (rc->response);
+  GNUNET_free (rc);
+}
+
+
 /**
  * Handle incoming HTTP request.
  *
@@ -984,6 +1012,13 @@ handle_mhd_request (void *cls,
     rc = *con_cls = GNUNET_new (struct TEKT_RequestContext);
     rc->url = url;
     rc->connection = connection;
+    rc->rh_cleaner = &rh_cleaner_cb;
+  }
+  if (NULL != rc->response)
+  {
+    return MHD_queue_response (rc->connection,
+                               rc->http_status,
+                               rc->response);
   }
 
   GNUNET_log (GNUNET_ERROR_TYPE_INFO,
@@ -993,7 +1028,6 @@ handle_mhd_request (void *cls,
   /* on repeated requests, check our cache first */
   if (NULL != rc->rh)
   {
-    MHD_RESULT ret;
     const char *start;
 
     if ('\0' == url[0])
@@ -1002,11 +1036,10 @@ handle_mhd_request (void *cls,
     start = strchr (url + 1, '/');
     if (NULL == start)
       start = "";
-    ret = proceed_with_handler (rc,
-                                start,
-                                upload_data,
-                                upload_data_size);
-    return ret;
+    return proceed_with_handler (rc,
+                                 start,
+                                 upload_data,
+                                 upload_data_size);
   }
   if (0 == strcasecmp (method,
                        MHD_HTTP_METHOD_HEAD))
@@ -1051,18 +1084,13 @@ handle_mhd_request (void *cls,
       GNUNET_assert (NULL != rh->method);
       if (0 == strcasecmp (method,
                            rh->method))
-      {
-        MHD_RESULT ret;
-
         /* cache to avoid the loop next time */
         rc->rh = rh;
-        /* run handler */
-        ret = proceed_with_handler (rc,
-                                    url + tok_size + 1,
-                                    upload_data,
-                                    upload_data_size);
-        return ret;
-      }
+      /* run handler */
+      return proceed_with_handler (rc,
+                                   url + tok_size + 1,
+                                   upload_data,
+                                   upload_data_size);
     }
 
     if (found)
@@ -1126,15 +1154,10 @@ handle_mhd_request (void *cls,
   }
 
   /* No handler matches, generate not found */
-  {
-    MHD_RESULT ret;
-
-    ret = TALER_MHD_reply_with_error (connection,
-                                      MHD_HTTP_NOT_FOUND,
-                                      TALER_EC_GENERIC_ENDPOINT_UNKNOWN,
-                                      url);
-    return ret;
-  }
+  return TALER_MHD_reply_with_error (connection,
+                                     MHD_HTTP_NOT_FOUND,
+                                     TALER_EC_GENERIC_ENDPOINT_UNKNOWN,
+                                     url);
 }
 
 

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