|
wired
libc-free QUIC/HTTP3 SDK in C for x86_64-linux
|
The peer's control stream, reassembled across datagrams (RFC 9000 2.2) past its leading type varint, so its HTTP/3 frames (SETTINGS, GOAWAY, PRIORITY_UPDATE, ...) can be walked once fully buffered up to parsed. More...
#include <srvloop.h>
Data Fields | |
| u8 | buf [WIRED_SRVLOOP_CTRL_BUF_CAP] |
| offset-indexed control bytes | |
| u64 | base |
| post-type stream offset of buf[0] | |
| usz | len |
| highest offset+len written into buf | |
| usz | parsed |
| bytes already walked as complete HTTP/3 frames | |
| u8 | open |
| a 0x00-typed offset-0 uni frame claimed the stream | |
| u64 | stream_id |
| the claimed stream's id; later chunks must match | |
The peer's control stream, reassembled across datagrams (RFC 9000 2.2) past its leading type varint, so its HTTP/3 frames (SETTINGS, GOAWAY, PRIORITY_UPDATE, ...) can be walked once fully buffered up to parsed.
Offset-indexed like wired_srvloop_stream_slot's req_buf: a frame spanning more than one STREAM frame (curl splits SETTINGS from a later PRIORITY_UPDATE) still lands contiguously. Walked frames are reclaimed (base moves past them), so only the unparsed backlog must fit; a chunk reaching past it latches wired_srvloop.ctrl_overflow.