Skip to main content

moqtap_client/draft16/session/
setup.rs

1use moqtap_codec::draft16::message::{ClientSetup, ServerSetup};
2
3/// Errors from setup message validation.
4#[derive(Debug, thiserror::Error, PartialEq, Eq)]
5pub enum SetupError {
6    /// A required setup parameter is missing.
7    #[error("missing required parameter: {0}")]
8    MissingParameter(
9        /// Name of the missing parameter.
10        &'static str,
11    ),
12    /// Client included a parameter reserved for SERVER_SETUP.
13    #[error("client sent SERVER_SETUP-only parameter")]
14    WrongParameterRole,
15}
16
17/// Validate a CLIENT_SETUP message.
18///
19/// Draft-16 uses ALPN for version negotiation, so CLIENT_SETUP has no
20/// versions field. Validation just checks parameters.
21pub fn validate_client_setup(_msg: &ClientSetup) -> Result<(), SetupError> {
22    // No version list to validate in draft-16.
23    // Could add parameter validation here if needed.
24    Ok(())
25}
26
27/// Validate a SERVER_SETUP message.
28///
29/// Draft-16 uses ALPN for version negotiation, so SERVER_SETUP has no
30/// selected_version field. Validation just checks parameters.
31pub fn validate_server_setup(_msg: &ServerSetup) -> Result<(), SetupError> {
32    Ok(())
33}