gnunet-svn
[Top][All Lists]
Advanced

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

[taler-exchange] 35/152: implement #6181


From: gnunet
Subject: [taler-exchange] 35/152: implement #6181
Date: Sun, 05 Jul 2020 20:46:31 +0200

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

grothoff pushed a commit to branch master
in repository exchange.

commit c7086fccd394a76b0b6a0b89217fa74efbfdfa43
Author: Christian Grothoff <christian@grothoff.org>
AuthorDate: Fri May 1 19:41:14 2020 +0200

    implement #6181
---
 src/exchange/taler-exchange-httpd.c     | 51 +++++++++++++++++++++++++++++++--
 src/testing/test_exchange_api_twisted.c |  4 ---
 2 files changed, 48 insertions(+), 7 deletions(-)

diff --git a/src/exchange/taler-exchange-httpd.c 
b/src/exchange/taler-exchange-httpd.c
index a8e29d30..00932c0f 100644
--- a/src/exchange/taler-exchange-httpd.c
+++ b/src/exchange/taler-exchange-httpd.c
@@ -420,6 +420,45 @@ proceed_with_handler (const struct TEH_RequestHandler *rh,
 }
 
 
+/**
+ * Handle a "/seed" request.
+ *
+ * @param rh context of the handler
+ * @param connection the MHD connection to handle
+ * @param args array of additional options (must be empty for this function)
+ * @return MHD result code
+ */
+static MHD_RESULT
+handler_seed (const struct TEH_RequestHandler *rh,
+              struct MHD_Connection *connection,
+              const char *const args[])
+{
+#define SEED_SIZE 32
+  char *body;
+  MHD_RESULT ret;
+  struct MHD_Response *resp;
+
+  (void) rh;
+  body = malloc (SEED_SIZE); /* must use malloc(), because MHD will use free() 
*/
+  if (NULL == body)
+    return MHD_NO;
+  GNUNET_CRYPTO_random_block (GNUNET_CRYPTO_QUALITY_NONCE,
+                              body,
+                              SEED_SIZE);
+  resp = MHD_create_response_from_buffer (SEED_SIZE,
+                                          body,
+                                          MHD_RESPMEM_MUST_FREE);
+  TALER_MHD_add_global_headers (resp);
+  ret = MHD_queue_response (connection,
+                            MHD_HTTP_OK,
+                            resp);
+  GNUNET_break (MHD_YES == ret);
+  MHD_destroy_response (resp);
+  return ret;
+#undef SEED_SIZE
+}
+
+
 /**
  * Handle incoming HTTP request.
  *
@@ -472,6 +511,11 @@ handle_mhd_request (void *cls,
       .method = MHD_HTTP_METHOD_GET,
       .handler.get = &TEH_handler_agpl_redirect
     },
+    {
+      .url = "seed",
+      .method = MHD_HTTP_METHOD_GET,
+      .handler.get = &handler_seed
+    },
     /* Terms of service */
     {
       .url = "terms",
@@ -654,9 +698,10 @@ handle_mhd_request (void *cls,
     {
       struct TEH_RequestHandler *rh = &handlers[i];
 
-      if (0 != strncmp (tok,
-                        rh->url,
-                        tok_size))
+      if ( (0 != strncmp (tok,
+                          rh->url,
+                          tok_size)) ||
+           (tok_size != strlen (rh->url) ) )
         continue;
       found = GNUNET_YES;
       /* The URL is a match!  What we now do depends on the method. */
diff --git a/src/testing/test_exchange_api_twisted.c 
b/src/testing/test_exchange_api_twisted.c
index 05337219..c99c7410 100644
--- a/src/testing/test_exchange_api_twisted.c
+++ b/src/testing/test_exchange_api_twisted.c
@@ -205,10 +205,6 @@ run (void *cls,
                               MHD_HTTP_PRECONDITION_FAILED,
                               "EUR:50",
                               "deposit-refund-1"),
-    TALER_TESTING_cmd_refund ("refund-fee-too-low",
-                              MHD_HTTP_BAD_REQUEST,
-                              "EUR:5",
-                              "deposit-refund-1"),
     TALER_TESTING_cmd_end ()
   };
 

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