29#include <idfxx/http/server>
120#ifdef CONFIG_COMPILER_CXX_EXCEPTIONS
HTTP server with URI handler registration and RAII lifecycle.
HTTPS server with TLS support.
~ssl_server() override=default
ssl_server & operator=(const ssl_server &)=delete
ssl_server(config cfg)
Creates and starts an HTTPS server.
ssl_server(ssl_server &&) noexcept=default
Move constructor.
ssl_server(const ssl_server &)=delete
static result< ssl_server > make(config cfg)
Creates and starts an HTTPS server.
Type-safe wrapper for FreeRTOS task priority values.
std::expected< T, std::error_code > result
result type wrapping a value or error code.
HTTPS server configuration.
size_t stack_size
Stack size for the server task (10KB)
std::move_only_function< void(int) const > on_session_close
Called when a session is closed.
uint16_t ctrl_port
Control port for server commands.
std::chrono::milliseconds handshake_timeout
TLS handshake timeout (0 = default 10s)
size_t max_uri_len
Maximum URI length (0 = Kconfig default)
std::chrono::seconds keep_alive_idle
Keep-alive idle time.
std::chrono::seconds keep_alive_interval
Keep-alive probe interval.
uint16_t max_resp_headers
Maximum additional response headers.
std::chrono::seconds linger_timeout
Linger timeout.
std::chrono::seconds send_wait_timeout
Send timeout.
bool lru_purge_enable
Purge least-recently-used connections when full.
std::chrono::seconds recv_wait_timeout
Receive timeout.
bool use_ecdsa_peripheral
Use ECDSA peripheral for key operations.
uint16_t server_port
HTTPS listening port.
size_t max_req_hdr_len
Maximum request header length (0 = Kconfig default)
uint16_t backlog_conn
Maximum backlog connections.
bool use_secure_element
Use secure element for key storage.
std::string private_key
Server private key (PEM format)
uint16_t max_uri_handlers
Maximum registered URI handlers.
std::optional< core_id > core_affinity
Core pin (nullopt = any core)
bool session_tickets
Enable TLS session tickets.
bool wildcard_uri_match
Enable wildcard URI matching.
std::string client_ca_cert
CA cert for client verification (optional, PEM format)
task_priority priority
Priority of the server task.
std::move_only_function< result< void >(int) const > on_session_open
Called when a new session is opened.
bool keep_alive_enable
Enable TCP keep-alive.
std::string server_cert
Server certificate (PEM format)
bool enable_so_linger
Enable SO_LINGER on sockets.
uint16_t max_open_sockets
Maximum concurrent client connections.
uint8_t ecdsa_key_efuse_blk
eFuse block number for ECDSA key
int keep_alive_count
Keep-alive probe count.