42 lines
1.2 KiB
C
42 lines
1.2 KiB
C
//
|
|
// Created by hamo on 11/19/22.
|
|
//
|
|
|
|
#include "handlers.h"
|
|
|
|
enum MHD_Result
|
|
handle_all(void * cls,
|
|
struct MHD_Connection * connection,
|
|
const char * url,
|
|
const char * method,
|
|
const char * version,
|
|
const char * upload_data,
|
|
size_t * upload_data_size,
|
|
void ** ptr) {
|
|
static int dummy;
|
|
const char * page = cls;
|
|
struct MHD_Response * response;
|
|
int ret;
|
|
|
|
if (0 != strcmp(method, "GET"))
|
|
return MHD_NO; /* unexpected method */
|
|
if (&dummy != *ptr)
|
|
{
|
|
/* The first time only the headers are valid,
|
|
do not respond in the first round... */
|
|
*ptr = &dummy;
|
|
return MHD_YES;
|
|
}
|
|
if (0 != *upload_data_size)
|
|
return MHD_NO; /* upload data in a GET!? */
|
|
*ptr = NULL; /* clear context pointer */
|
|
response = MHD_create_response_from_buffer (strlen(page),
|
|
(void*) page,
|
|
MHD_RESPMEM_PERSISTENT);
|
|
ret = MHD_queue_response(connection,
|
|
MHD_HTTP_OK,
|
|
response);
|
|
MHD_destroy_response(response);
|
|
return ret;
|
|
}
|