You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Summary:
MOQT draft-15+ negotiates version via ALPN rather than in the setup
messages themselves, making the `supportedVersions` vector in
ClientSetup and `selectedVersion` in ServerSetup redundant for modern
drafts. Draft-14 (legacy/moq-00) is the only pre-ALPN version we
support.
This change unifies `ClientSetup` and `ServerSetup` into a single
`Setup` struct (aliases kept for compat), removing the version fields
from the structs and moving version handling into the framer/codec layer.
Key changes:
- Add `Setup` struct; alias `ClientSetup`/`ServerSetup` to it
- Framer: `writeClientSetup`/`writeServerSetup` take an explicit version
param; write version on wire only in legacy mode (draft < 15), with
XCHECK_EQ that version is draft-14
- Framer: `parseClientSetup` in legacy mode requires draft-14 in the
client's version array (VERSION_NEGOTIATION_FAILED if absent);
`parseServerSetup` in legacy mode validates server selected draft-14
- Session: `setup(Setup)` replaces `setup(ClientSetup)`; version
initialized from ALPN or hardcoded to draft-14 for legacy
- Remove `shouldSendAuthorityParam()` and
`shouldIncludeMoqtImplementationParam()` helpers; inline their logic
- mlog: unify `MOQTClientSetupMessage`/`MOQTServerSetupMessage` into
`MOQTSetupMessage`; log version alongside setup params
- Tests: add framer helpers (`makeLegacyClientSetupFrame`,
`makeLegacyServerSetupFrame`, `skipFrameHeader`) and version
validation tests
Reviewed By: sharmafb
Differential Revision: D95678227
fbshipit-source-id: 48c4f15ff0ed14533a405b15f83727835373a1dc
0 commit comments