|
wired
libc-free QUIC/HTTP3 SDK in C for x86_64-linux
|
One SUBSCRIBE held for a publisher. More...
#include <moqtrun.h>
Data Fields | |
| int | in_use |
| 1 while the slot holds a SUBSCRIBE. | |
| wired_wt_session * | wt |
| The subscriber's session (owned by the transport). | |
| u64 | stream_id |
| The SUBSCRIBE's request stream. | |
| u64 | deadline_ms |
| wired_moqt_tick clock at which the hold answers TIMEOUT. | |
| u8 | ns [WIRED_MOQTRUN_MAX_NS] |
| The Full Track Name as the hub keys tracks (WIRED_MOQTRUN_MAX_NS / _MAX_NAME: a longer name is never held – no PUBLISH can claim it). | |
| usz | ns_len |
| Bytes of ns in use. | |
| u8 | name [WIRED_MOQTRUN_MAX_NAME] |
| The Track Name, copied. | |
| usz | name_len |
| Bytes of name in use. | |
| u8 | body [WIRED_MOQTRUN_CTL_MSG_MAX] |
| The SUBSCRIBE body as received, re-decoded in the session's own draft when the hold resolves (the decoded views dangle after the dispatch). | |
| usz | body_len |
| Bytes of body in use. | |
| u8 | up_only |
| 1 when the SUBSCRIBE carried no RENDEZVOUS_TIMEOUT and is held only for its upstream SUBSCRIBE to a namespace publisher (draft-18/19 9.5, draft-22 7.6): no deadline, and no announcer left answers it REQUEST_ERROR at once. | |
| u8 | repath |
| 1 when the slot holds an Established subscription whose upstream ended on the publisher's side and that waits for another announcer (draft-22 7.6.1): already answered, so it is re-attached silently or ends with one PUBLISH_DONE at deadline_ms, never answered again. | |
| u64 | done_status |
| repath only: the PUBLISH_DONE Status Code owed at deadline_ms. | |
| u64 | done_count |
| repath only: that PUBLISH_DONE's Stream Count. | |
| u64 | tried |
| repath only: bit i is set for peer slot i, asked for the track in this wait or the one that ended it; its next PUBLISH_NAMESPACE clears it. | |
One SUBSCRIBE held for a publisher.
Owner key is (wt, stream_id) – never a pointer/index into hub->reqs[]: the request slot is looked up again at resolve/expiry, so a stream already gone simply ends the hold.
| u8 wired_moqtrun_rdv::body[WIRED_MOQTRUN_CTL_MSG_MAX] |
The SUBSCRIBE body as received, re-decoded in the session's own draft when the hold resolves (the decoded views dangle after the dispatch).
WIRED_MOQTRUN_CTL_MSG_MAX bounds every body this hub accepts, so it always fits.