12#ifndef CSILK_SERVER_INTERNAL_H
13#define CSILK_SERVER_INTERNAL_H
15#include <openssl/ssl.h>
19#include <nghttp2/nghttp2.h>
25#define CSILK_DEFAULT_IDLE_TIMEOUT 5000
27#define CSILK_DEFAULT_MAX_BODY_SIZE (1024UL * 1024UL)
29#define CSILK_DEFAULT_MAX_HEADER_SIZE (64UL * 1024UL)
31#define CSILK_DEFAULT_LISTEN_BACKLOG 128
33#define CSILK_DEFAULT_ARENA_SIZE 4096
36typedef struct csilk_hook_node_s {
38 struct csilk_hook_node_s*
next;
Internal layout of csilk_ctx_s — the central per-request data structure.
High-performance C web framework — main public API header.
The main HTTP router.
Definition csilk.h:1419
Low-level server configuration options.
Definition csilk.h:953
@ CSILK_HOOK_COUNT
Definition csilk.h:2047
void(* csilk_handler_t)(csilk_ctx_t *c)
Function pointer for route handlers and middleware.
Definition csilk.h:120
uv_mutex_t pool_mutex
Definition server_internal.h:83
size_t header_count
Definition server_internal.h:109
uv_timer_t write_timer
Definition server_internal.h:96
size_t total_header_size
Definition server_internal.h:108
char * current_header_value
Definition server_internal.h:115
csilk_protocol_t protocol
Definition server_internal.h:100
csilk_protocol_t
Protocol type for a client connection.
Definition server_internal.h:42
@ CSILK_PROTO_UNKNOWN
Definition server_internal.h:42
@ CSILK_PROTO_HTTP2
Definition server_internal.h:42
@ CSILK_PROTO_HTTP1
Definition server_internal.h:42
csilk_router_t * router
Definition server_internal.h:56
uv_timer_t read_timer
Definition server_internal.h:95
size_t header_field_capacity
Definition server_internal.h:111
csilk_cipher_driver_t * cipher_driver
Definition server_internal.h:75
char * spa_doc_root
Definition server_internal.h:72
csilk_crypto_driver_t * crypto_driver
Definition server_internal.h:74
llhttp_settings_t settings
Definition server_internal.h:60
csilk_handler_t middlewares[32]
Definition server_internal.h:62
int worker_count
Definition server_internal.h:68
csilk_ctx_t ctx
Definition server_internal.h:107
uv_timer_t timer
Definition server_internal.h:94
int worker_stop_count
Definition server_internal.h:70
char * current_header_field
Definition server_internal.h:114
atomic_int active_connections
Definition server_internal.h:65
csilk_mq_t * mq
Definition server_internal.h:77
csilk_handler_t not_found_handler
Definition server_internal.h:71
struct csilk_client_s * next
Definition server_internal.h:119
int middleware_count
Definition server_internal.h:63
uv_mutex_t clients_mutex
Definition server_internal.h:80
uv_async_t * worker_stop_async
Definition server_internal.h:69
csilk_client_t * client_pool[32]
Definition server_internal.h:81
uv_timer_t request_timer
Definition server_internal.h:97
uv_loop_t * loop
Definition server_internal.h:55
uv_tcp_t handle
Definition server_internal.h:93
BIO * read_bio
Definition server_internal.h:117
char * current_url
Definition server_internal.h:113
uv_tcp_t server_handle
Definition server_internal.h:57
int client_pool_count
Definition server_internal.h:82
csilk_ctx_t * h2_streams
Definition server_internal.h:102
uv_thread_t * worker_tids
Definition server_internal.h:67
SSL * ssl
Definition server_internal.h:116
void csilk_client_write(csilk_client_t *client, const uint8_t *data, size_t length)
Write data to the client's TCP socket, handling TLS encryption if necessary.
Definition server.c:825
llhttp_t parser
Definition server_internal.h:104
csilk_hook_node_t * hooks[CSILK_HOOK_COUNT]
Definition server_internal.h:78
csilk_client_t * active_clients
Definition server_internal.h:79
struct csilk_hook_node_s * next
Definition server_internal.h:38
csilk_server_t * server
Definition server_internal.h:106
BIO * write_bio
Definition server_internal.h:118
SSL_CTX * ssl_ctx
Definition server_internal.h:76
uv_signal_t sig_handle
Definition server_internal.h:58
csilk_server_config_t config
Definition server_internal.h:61
uv_async_t async_handle
Definition server_internal.h:59
nghttp2_session * h2_session
Definition server_internal.h:101
struct csilk_client_s * prev
Definition server_internal.h:120
void * handler
Definition server_internal.h:37
size_t current_url_capacity
Definition server_internal.h:110
int max_connections
Definition server_internal.h:64
csilk_storage_driver_t * storage_driver
Definition server_internal.h:73
size_t header_value_capacity
Definition server_internal.h:112
int close_pending
Definition server_internal.h:98
Client connection structure — represents a single TCP connection.
Definition server_internal.h:92
Hook handler node in a linked list.
Definition server_internal.h:36
Main Server structure — represents the core HTTP server instance.
Definition server_internal.h:54
Virtual function table implemented by each cipher backend.
Definition cipher.h:50
Pluggable cryptographic primitive driver.
Definition csilk.h:2090
Pluggable storage driver for context key-value pairs.
Definition csilk.h:95