1#ifndef WIRED_H3REQDRIVE_REQUEST_DRIVE_H
2#define WIRED_H3REQDRIVE_REQUEST_DRIVE_H
4#include "app/http3/core/h3/priority.h"
5#include "app/qpack/qpack/dyntable.h"
int wired_h3reqdrive_recv_get_dyn(quic_span stream_data, quic_mspan scratch, const quic_qpack_dyn *dyn, wired_h3reqdrive_req *r)
Same as wired_h3reqdrive_recv_get, but also resolves dynamic-table references (RFC 9204 4....
int wired_h3reqdrive_send_get(u64 stream_id, const wired_h3reqdrive_get_in *in, quic_obuf *out)
RFC 9114 4.1 / 4.3.1, RFC 9204 4.5: drive an HTTP/3 GET request end to end: QPACK-encode the request ...
int wired_h3reqdrive_send_method(u64 stream_id, const wired_h3reqdrive_send_in *in, quic_obuf *out)
RFC 9114 4.1 / 4.3.1, RFC 9204 4.5: drive an arbitrary-method HTTP/3 request end to end: QPACK-encode...
int wired_h3reqdrive_recv_get(quic_span stream_data, quic_mspan scratch, wired_h3reqdrive_req *r)
RFC 9114 4.1, RFC 9204 4.5: decode a STREAM frame carrying a request: recover :method,...
int wired_h3reqdrive_trailer_ok(quic_span stream_data, quic_mspan scratch)
RFC 9114 4.3: check that a request stream's trailer section (if any) carries no pseudo-header field –...
Value-type views that fold the SDK's recurring argument shapes into single parameters,...
RFC 9218 4: a request's priority — urgency (lower is more urgent) and whether the response may be ser...
Definition priority.h:15
Mutable view of a byte range.
Definition span.h:42
Growing output buffer view for variable-length results.
Definition span.h:54
RFC 9204 3.2.
Definition dyntable.h:26
Read-only view of a byte range.
Definition span.h:30
The :path and :authority values for a GET request.
Definition request_drive.h:15
quic_span authority
the :authority pseudo-header value
Definition request_drive.h:17
quic_span path
the :path pseudo-header value
Definition request_drive.h:16
RFC 9114 4.1 / 4.3.1, RFC 9204 4.5: recovered request pseudo-headers.
Definition request_drive.h:53
const u8 * scheme
:scheme value (static-table view or scratch)
Definition request_drive.h:56
quic_h3_priority priority
RFC 9218 5 priority header (defaults).
Definition request_drive.h:67
usz origin_len
origin length in octets, 0 if absent
Definition request_drive.h:71
usz path_len
path length in octets
Definition request_drive.h:62
usz cookie_len
cookie length in octets, 0 if absent
Definition request_drive.h:84
usz body_len
0 for GET and other bodyless requests
Definition request_drive.h:66
usz wt_avail_len
wt-available-protocols length in octets, 0 if absent
Definition request_drive.h:78
usz authority_len
authority length in octets
Definition request_drive.h:60
const u8 * authority
:authority value (static-table view or scratch)
Definition request_drive.h:58
const u8 * method
:method value (static-table view or scratch)
Definition request_drive.h:54
int expect_continue
RFC 9110 10.1.1: 1 if a regular expect field carried exactly "100-continue" (case-sensitive; every re...
Definition request_drive.h:90
usz method_len
method length in octets
Definition request_drive.h:55
usz protocol_len
protocol length in octets, 0 if absent
Definition request_drive.h:64
const u8 * body
request body view into stream_data, 0 if none
Definition request_drive.h:65
u8 wt_avail[256]
WebTransport subprotocol negotiation: the raw wt-available-protocols header value (an RFC 8941 sf-lis...
Definition request_drive.h:77
const u8 * protocol
RFC 9220 3: :protocol value, 0 if absent.
Definition request_drive.h:63
const u8 * origin
regular origin header value (static-table view or scratch), 0 if absent (RFC 9220 3 / WebTransport dr...
Definition request_drive.h:68
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 ...
Definition request_drive.h:99
const u8 * path
:path value (static-table view or scratch)
Definition request_drive.h:61
u8 cookie[512]
RFC 9114 4.2.1: multiple cookie field lines, reassembled with the "; " delimiter into a single value ...
Definition request_drive.h:83
usz scheme_len
scheme length in octets
Definition request_drive.h:57
Remaining arguments of wired_h3reqdrive_send_method beyond stream_id/out: the request line (method/pa...
Definition request_drive.h:32
quic_span path
the :path pseudo-header value
Definition request_drive.h:34
quic_span method
the :method pseudo-header value
Definition request_drive.h:33
quic_span body
optional request body; empty for none
Definition request_drive.h:36
quic_span authority
the :authority pseudo-header value
Definition request_drive.h:35
x86_64 Linux direct syscalls.
u64 usz
unsigned size (size_t equivalent)
Definition syscall.h:19
unsigned char u8
unsigned 8-bit integer / byte
Definition syscall.h:17
unsigned long u64
unsigned 64-bit integer
Definition syscall.h:12