Work in progress HTTP server in C.

git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4676 ed5197a5-7fde-0310-b194-c3ffbd925b24
This commit is contained in:
2023-12-13 23:59:11 +00:00
parent 0b47207949
commit 1d214f89ed
3 changed files with 283 additions and 0 deletions

29
src/http.h Normal file
View File

@ -0,0 +1,29 @@
#pragma once
typedef struct uv_loop_s uv_loop_t;
typedef struct _tf_http_t tf_http_t;
typedef struct _tf_http_connection_t tf_http_connection_t;
typedef enum _tf_http_callback_phase_t
{
k_http_callback_phase_headers_received,
k_http_callback_phase_request_done,
} tf_http_callback_phase_t;
typedef struct _tf_http_request_t
{
tf_http_callback_phase_t phase;
tf_http_connection_t* connection;
const char* method;
const char* path;
struct phr_header* headers;
int headers_count;
void* user_data;
} tf_http_request_t;
typedef void (tf_http_callback_t)(tf_http_request_t* request);
tf_http_t* tf_http_create(uv_loop_t* loop);
void tf_http_listen(tf_http_t* http, int port);
void tf_http_add_handler(tf_http_t* http, const char* pattern, tf_http_callback_t* callback, void* user_data);
void tf_http_destroy(tf_http_t* http);