ascii-chat
Binary v0.15.83-53-gb711d8720
Library lib/v0.3.2-701-gb711d8720
Video chat in your terminal
Loading...
Searching...
No Matches
include/ascii-chat/network/http/server/server.h
Go to the documentation of this file.
1#pragma once
2
11
13#include <stdbool.h>
14#include <stddef.h>
15#include <stdint.h>
16
17typedef struct http_server http_server_t;
20
27
28typedef struct {
29 const char *name;
30 const char *value;
32
33typedef struct http_request_info {
34 const char *method;
35 const char *path;
36 const char *query;
40 const char *peer_address;
41 void *user_data;
43
45
46typedef void (*http_request_fn)(http_request_t *request, http_response_t *response, void *user_data);
47typedef void (*http_connection_fn)(const char *peer_address, bool connected, void *user_data);
48typedef void (*http_error_fn)(asciichat_error_t error, const char *message, void *user_data);
50typedef void (*http_wakeup_fn)(void *user_data);
51
82
86asciichat_error_t http_server_adopt_socket(http_server_t *server, intptr_t socket_handle);
93
95const void *http_request_body(const http_request_t *request, size_t *length);
96bool http_request_is_cancelled(const http_request_t *request);
99
105asciichat_error_t http_response_set_header(http_response_t *response, const char *name, const char *value);
106asciichat_error_t http_response_write(http_response_t *response, const void *data, size_t length);
108size_t http_response_body_length(const http_response_t *response);
Synchronized per-thread pending error stacks and value snapshots. SET_ERRNO pushes,...
struct http_basic_auth_config http_basic_auth_config_t
unsigned short uint16_t
Definition common.h:61
unsigned int uint32_t
Definition common.h:62
asciichat_error_t
Error and exit codes - unified status values (0-255).
Definition error_codes.h:44
asciichat_error_t http_server_init(http_server_t **server, const http_server_config_t *config)
asciichat_error_t http_response_set_status(http_response_t *response, unsigned status)
struct http_request http_request_t
asciichat_error_t http_server_adopt_socket(http_server_t *server, intptr_t socket_handle)
struct http_request_info http_request_info_t
void(* http_connection_fn)(const char *peer_address, bool connected, void *user_data)
asciichat_error_t http_server_start(http_server_t *server)
asciichat_error_t http_response_finish(http_response_t *response)
bool http_request_is_cancelled(const http_request_t *request)
asciichat_error_t http_response_retain(http_response_t *response, http_response_t **retained)
void(* http_error_fn)(asciichat_error_t error, const char *message, void *user_data)
const void * http_request_body(const http_request_t *request, size_t *length)
void http_server_stop(http_server_t *server)
asciichat_error_t http_request_cancel(http_request_t *request)
size_t http_response_body_length(const http_response_t *response)
void http_server_destroy(http_server_t **server)
bool http_response_is_cancelled(const http_response_t *response)
void(* http_wakeup_fn)(void *user_data)
asciichat_error_t http_response_set_header(http_response_t *response, const char *name, const char *value)
asciichat_error_t http_response_write(http_response_t *response, const void *data, size_t length)
void(* http_request_fn)(http_request_t *request, http_response_t *response, void *user_data)
struct http_response http_response_t
asciichat_error_t http_server_wakeup(http_server_t *server)
void http_response_release(http_response_t **response)
const http_request_info_t * http_request_info(const http_request_t *request)
asciichat_error_t http_server_run(http_server_t *server)
struct http_server http_server_t
Definition tls.h:8