This commit is contained in:
Christian Grothoff 2020-05-01 19:41:14 +02:00
parent dd23ca4113
commit c31048b050
No known key found for this signature in database
GPG Key ID: 939E6BE1E29FC3CC
2 changed files with 48 additions and 7 deletions

View File

@ -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. */

View File

@ -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 ()
};