Skip to content

fix: respond to unsupported requests instead of dropping them - #209

Open
thexeos wants to merge 1 commit into
cloudflare:draft-ietf-moq-transport-14from
thexeos:fix/unsupported-request-responses-draft-14
Open

fix: respond to unsupported requests instead of dropping them#209
thexeos wants to merge 1 commit into
cloudflare:draft-ietf-moq-transport-14from
thexeos:fix/unsupported-request-responses-draft-14

Conversation

@thexeos

@thexeos thexeos commented Aug 13, 2026

Copy link
Copy Markdown

The publisher maps FETCH, SUBSCRIBE_NAMESPACE and the other requests it does not implement to SessionError::unimplemented, which recv_message swallows with a warning. A peer that sends one of these legal, spec-defined requests therefore receives no response at all and is left waiting on a request that will never be resolved.

This replies with the per-request error draft-14 defines for each instead: FETCH_ERROR for FETCH and SUBSCRIBE_NAMESPACE_ERROR for SUBSCRIBE_NAMESPACE, both carrying NOT_SUPPORTED (0x3, §13.1). FETCH_CANCEL, UNSUBSCRIBE_NAMESPACE, PUBLISH_OK and PUBLISH_ERROR reference an earlier request rather than opening one and have no error response of their own, so they are logged and ignored. This backports the behaviour main already has via send_not_supported, and adds unit tests covering each case.

The publisher mapped FETCH, SUBSCRIBE_NAMESPACE and the other requests it
does not implement to SessionError::unimplemented. recv_message swallows
that error with a warning, so a peer sending a legal, spec-defined request
gets no answer at all and is left waiting on a request that will never be
resolved.

Reply with the per-request error draft-14 defines for each instead:
FETCH_ERROR for FETCH and SUBSCRIBE_NAMESPACE_ERROR for SUBSCRIBE_NAMESPACE,
both carrying NOT_SUPPORTED (0x3). FETCH_CANCEL, UNSUBSCRIBE_NAMESPACE,
PUBLISH_OK and PUBLISH_ERROR reference an earlier request rather than
opening one and have no error response of their own, so they are logged and
ignored. This matches the behaviour main already has via send_not_supported.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant