|
wired
libc-free QUIC/HTTP3 SDK in C for x86_64-linux
|
RFC 9114 4.1 / 4.3.1, RFC 9204 4.5: recovered request pseudo-headers. More...
#include <request_drive.h>
Data Fields | |
| const u8 * | method |
| :method value (static-table view or scratch) | |
| usz | method_len |
| method length in octets | |
| const u8 * | scheme |
| :scheme value (static-table view or scratch) | |
| usz | scheme_len |
| scheme length in octets | |
| const u8 * | authority |
| :authority value (static-table view or scratch) | |
| usz | authority_len |
| authority length in octets | |
| const u8 * | path |
| :path value (static-table view or scratch) | |
| usz | path_len |
| path length in octets | |
| const u8 * | protocol |
| RFC 9220 3: :protocol value, 0 if absent. | |
| usz | protocol_len |
| protocol length in octets, 0 if absent | |
| const u8 * | body |
| request body view into stream_data, 0 if none | |
| usz | body_len |
| 0 for GET and other bodyless requests | |
| quic_h3_priority | priority |
| RFC 9218 5 priority header (defaults). | |
| const u8 * | origin |
| regular origin header value (static-table view or scratch), 0 if absent (RFC 9220 3 / WebTransport draft SS3.6 origin check applies only when present) | |
| usz | origin_len |
| origin length in octets, 0 if absent | |
| u8 | wt_avail [256] |
| WebTransport subprotocol negotiation: the raw wt-available-protocols header value (an RFC 8941 sf-list of sf-strings, the client's offer in preference order), copied verbatim – not a scratch view like origin, so the offer survives past the decode's scratch lifetime. | |
| usz | wt_avail_len |
| wt-available-protocols length in octets, 0 if absent | |
| u8 | cookie [512] |
| RFC 9114 4.2.1: multiple cookie field lines, reassembled with the "; " delimiter into a single value (as if the peer had sent one HTTP/1.1-style Cookie header) before the application ever sees it. | |
| usz | cookie_len |
| cookie length in octets, 0 if absent | |
| int | expect_continue |
| RFC 9110 10.1.1: 1 if a regular expect field carried exactly "100-continue" (case-sensitive; every real sender spells it lowercase, matching RFC 9114 4.2's field-name-lowercase requirement's spirit), 0 otherwise – the condition the server's 100 (Continue) interim response path gates on. | |
| int | frame_unexpected |
| RFC 9114 7.2.5/7.2.8 (9114-067/9114-073): 1 if the request stream carried a frame this endpoint must reject outright before HEADERS was reached – PUSH_PROMISE (a server-to-client frame this server-only SDK never sends, so any received instance is unexpected) or an HTTP/2-only reserved type (0x02/0x06/0x08/0x09). | |
RFC 9114 4.1 / 4.3.1, RFC 9204 4.5: recovered request pseudo-headers.
Each value is either a static-table view or a copy in the caller-supplied scratch buffer, depending on how the peer encoded the field line.
| u8 wired_h3reqdrive_req::cookie[512] |
RFC 9114 4.2.1: multiple cookie field lines, reassembled with the "; " delimiter into a single value (as if the peer had sent one HTTP/1.1-style Cookie header) before the application ever sees it.
A reassembled value that does not fit is truncated to what fits.
| int wired_h3reqdrive_req::frame_unexpected |
RFC 9114 7.2.5/7.2.8 (9114-067/9114-073): 1 if the request stream carried a frame this endpoint must reject outright before HEADERS was reached – PUSH_PROMISE (a server-to-client frame this server-only SDK never sends, so any received instance is unexpected) or an HTTP/2-only reserved type (0x02/0x06/0x08/0x09).
Set by find_headers (request_parse.c) via quic_h3_frame_recv_ok; the caller aborts the stream with H3_FRAME_UNEXPECTED instead of the H3_REQUEST_INCOMPLETE an ordinary decode failure gets.
| u8 wired_h3reqdrive_req::wt_avail[256] |
WebTransport subprotocol negotiation: the raw wt-available-protocols header value (an RFC 8941 sf-list of sf-strings, the client's offer in preference order), copied verbatim – not a scratch view like origin, so the offer survives past the decode's scratch lifetime.
A value that does not fit is dropped (treated as absent).