|
wired
libc-free QUIC/HTTP3 SDK in C for x86_64-linux
|
One wired_moqt_io table that serves both MoQT transports, so the hub never branches on transport for I/O. More...
#include "app/moqt/run/moqtrun.h"#include "common/bytes/span/span.h"#include "common/platform/sys/syscall.h"Go to the source code of this file.
Data Structures | |
| struct | moqrawio_backend |
| The srvrun operations the mux forwards prefixed stream opens to, as a function-pointer table: the unity build links the real srvrun, so a test cannot stub wired_server_* by symbol and fills this with recorders instead. More... | |
Macros | |
| #define | MOQRAWIO_STAGE_BUF 65536 |
| Staging capacity for one prefixed stream-opening payload (signal + payload, copied once before the open call). | |
Functions | |
| wired_moqt_io | moqrawio_io (const moqrawio_backend *be) |
| The transport-mux wired_moqt_io over backend be. | |
| wired_moqt_io | wired_moqraw_io (void) |
| moqrawio_io over the real srvrun backend: the io table an application passes to wired_moqt_init so one hub serves WebTransport and raw-QUIC sessions alike. | |
One wired_moqt_io table that serves both MoQT transports, so the hub never branches on transport for I/O.
The only per-transport step is the stream-opening prefix: a WebTransport session's stream begins with the WT signal (bidi 0x41 / uni 0x54 + session id, draft-ietf-webtrans-http3-15 4.2), a raw-QUIC session's stream begins with the MoQT bytes themselves (draft-ietf-moq-transport-19 3.3, -22 6.3). Every other op goes to the srvrun call as is: srvrun applies the remaining binding differences (reset code mapping, datagram qsid, session close shape) itself.
| #define MOQRAWIO_STAGE_BUF 65536 |
Staging capacity for one prefixed stream-opening payload (signal + payload, copied once before the open call).
Sized to srvrun's per-stream send staging (SRVRUN_WTSEND_BUF, 65536), the most one opening round can carry anyway, and equal to the moqt_interop example's former private buffer it replaces. A larger payload is refused (-1) on both transports.
| wired_moqt_io moqrawio_io | ( | const moqrawio_backend * | be | ) |
The transport-mux wired_moqt_io over backend be.
Ops behave per transport as follows (be->is_raw decides):
| be | the backend; must not be 0 |
| wired_moqt_io wired_moqraw_io | ( | void | ) |
moqrawio_io over the real srvrun backend: the io table an application passes to wired_moqt_init so one hub serves WebTransport and raw-QUIC sessions alike.