23#ifndef DETERMINISTICESPASYNCWEBSERVER_H2_CONN_H
24#define DETERMINISTICESPASYNCWEBSERVER_H2_CONN_H
37enum class H2StreamState : uint8_t
56 void (*write)(
void *io,
const uint8_t *data,
size_t len);
58 void (*on_header)(
void *app, uint32_t stream_id,
const char *name,
size_t nlen,
const char *val,
size_t vlen);
60 void (*on_headers_end)(
void *app, uint32_t stream_id,
bool end_stream);
62 void (*on_data)(
void *app, uint32_t stream_id,
const uint8_t *data,
size_t len,
bool end_stream);
81 uint32_t hblock_stream;
82 bool hblock_end_stream;
89 int32_t conn_send_window;
92 uint32_t last_peer_stream;
96void h2_conn_init(H2Conn *c,
const H2Callbacks *cb);
102bool h2_conn_recv(H2Conn *c,
const uint8_t *data,
size_t len);
109bool h2_conn_respond(H2Conn *c, uint32_t stream_id,
int status,
const char *content_type,
const char *body,
113void h2_conn_goaway(H2Conn *c, uint32_t error);
User-facing configuration for DeterministicESPAsyncWebServer.
#define DETWS_H2_MAX_FRAME
Largest HTTP/2 frame we accept, in bytes (advertised as SETTINGS_MAX_FRAME_SIZE). RFC 9113 requires a...
#define DETWS_H2_HDR_BLOCK
Header-block reassembly buffer for HTTP/2 requests that span HEADERS + CONTINUATION frames (a single ...
#define DETWS_H2_MAX_STREAMS
Max concurrent HTTP/2 streams per connection (advertised as MAX_CONCURRENT_STREAMS).
HTTP/2 binary framing (RFC 9113 sec 4 + sec 6).
HPACK header compression for HTTP/2 (RFC 7541).