|
cwist
Modern C web framework with libttak runtime
|
HTTP/3 server context encapsulating lsquic/BoringSSL settings. More...
#include <http3.h>

Public Attributes | |
| SSL_CTX * | ssl_ctx |
| int | udp_fd |
| void * | engine |
| void(* | handler )(void *user_ctx, cwist_http_request *req, cwist_http_response *res) |
| void * | user_ctx |
| volatile int | running |
| int | push_enabled |
| int | early_data_enabled |
| int | early_data_guard |
| int | allow_migration |
| int | datagram_enabled |
| void(* | datagram_cb )(const void *data, size_t len, void *user_ctx) |
| void * | datagram_user_ctx |
| cwist_webtransport_handler_func | wt_handler |
| void(* | wt_new_stream_handler )(void *stream, void *user_ctx) |
| void * | wt_new_stream_ctx |
| int | idle_timeout_ms |
| int | handshake_timeout_ms |
| int | ping_period_ms |
| int | noprogress_timeout_ms |
| void * | hsets |
| pthread_rwlock_t | ssl_ctx_lock |
| SSL_CTX * | ssl_ctx_handout |
| void * | ticket_key |
HTTP/3 server context encapsulating lsquic/BoringSSL settings.
— HTTP/3 Structures —
| int cwist_http3_context::allow_migration |
QUIC connection migration enabled
Definition at line 46 of file http3.h.
Referenced by cwist_http3_server_loop().
Definition at line 48 of file http3.h.
Referenced by cwist_http3_set_datagram_callback().
| int cwist_http3_context::datagram_enabled |
QUIC datagram extension enabled
Definition at line 47 of file http3.h.
Referenced by cwist_http3_server_loop(), and cwist_http3_set_datagram_enabled().
| void* cwist_http3_context::datagram_user_ctx |
Definition at line 49 of file http3.h.
Referenced by cwist_http3_set_datagram_callback().
| int cwist_http3_context::early_data_enabled |
0-RTT early data enabled
Definition at line 44 of file http3.h.
Referenced by cwist_http3_reload_context(), and cwist_http3_set_early_data().
| int cwist_http3_context::early_data_guard |
Restrict 0-RTT requests to idempotent methods
Definition at line 45 of file http3.h.
Referenced by cwist_http3_set_early_data(), and cwist_http3_set_early_data_guard().
| void* cwist_http3_context::engine |
Opaque lsquic_engine_t pointer
Definition at line 38 of file http3.h.
Referenced by cwist_http3_destroy_context(), and cwist_http3_server_loop().
| void(* cwist_http3_context::handler) (void *user_ctx, cwist_http_request *req, cwist_http_response *res) |
Definition at line 39 of file http3.h.
Referenced by cwist_http3_server_loop().
| int cwist_http3_context::handshake_timeout_ms |
0 = use lsquic default (10s)
Definition at line 55 of file http3.h.
Referenced by cwist_http3_server_loop(), and cwist_http3_set_handshake_timeout().
| void* cwist_http3_context::hsets |
| int cwist_http3_context::idle_timeout_ms |
0 = use lsquic default (30s)
Definition at line 54 of file http3.h.
Referenced by cwist_http3_server_loop(), and cwist_http3_set_idle_timeout().
| int cwist_http3_context::noprogress_timeout_ms |
0 = use lsquic default (60s server)
Definition at line 57 of file http3.h.
Referenced by cwist_http3_server_loop(), and cwist_http3_set_noprogress_timeout().
| int cwist_http3_context::ping_period_ms |
0 = use lsquic default (server: none)
Definition at line 56 of file http3.h.
Referenced by cwist_http3_server_loop(), and cwist_http3_set_ping_period().
| int cwist_http3_context::push_enabled |
HTTP/3 server push enabled
Definition at line 43 of file http3.h.
Referenced by cwist_http3_server_loop(), and cwist_http3_set_push_enabled().
Set to 0 to gracefully stop server_loop; from another thread use __atomic_store_n(&ctx->running, 0, __ATOMIC_RELEASE).
Definition at line 41 of file http3.h.
Referenced by cwist_http3_server_loop().
| SSL_CTX* cwist_http3_context::ssl_ctx |
BoringSSL server context
Definition at line 36 of file http3.h.
Referenced by cwist_http3_destroy_context(), cwist_http3_reload_context(), and cwist_http3_set_early_data().
| SSL_CTX* cwist_http3_context::ssl_ctx_handout |
Definition at line 68 of file http3.h.
Referenced by cwist_http3_destroy_context().
| pthread_rwlock_t cwist_http3_context::ssl_ctx_lock |
Definition at line 67 of file http3.h.
Referenced by cwist_http3_destroy_context(), cwist_http3_reload_context(), and cwist_http3_set_early_data().
| void* cwist_http3_context::ticket_key |
Definition at line 69 of file http3.h.
Referenced by cwist_http3_destroy_context(), and cwist_http3_reload_context().
| int cwist_http3_context::udp_fd |
Underlying UDP socket descriptor
Definition at line 37 of file http3.h.
Referenced by cwist_http3_server_loop().
| void* cwist_http3_context::user_ctx |
Definition at line 40 of file http3.h.
Referenced by cwist_http3_server_loop().
| cwist_webtransport_handler_func cwist_http3_context::wt_handler |
WebTransport session handler
Definition at line 50 of file http3.h.
Referenced by cwist_http3_server_loop(), and cwist_http3_set_webtransport_handler().
| void* cwist_http3_context::wt_new_stream_ctx |
User context for wt_new_stream_handler
Definition at line 53 of file http3.h.
Referenced by cwist_webtransport_set_new_stream_handler().
Callback for new WT data streams
Definition at line 51 of file http3.h.
Referenced by cwist_webtransport_set_new_stream_handler().