implement #6181
This commit is contained in:
parent
dd23ca4113
commit
c31048b050
@ -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. */
|
||||
|
@ -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 ()
|
||||
};
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user