Skip to main content

check_track_property_values

Function check_track_property_values 

Source
fn check_track_property_values(
    properties: &[KeyValuePair],
) -> Result<(), CodecError>
Expand description

Refuse a Track Property whose value falls outside the range its type allows, wherever in the list it is carried.

§Inside Immutable Properties as well as beside them

The list is walked one level down through Immutable Properties, whose contents Section 12.7 defines as properties themselves. The draft asks for this in as many words: “When looking for the value of a property, processors MUST search both the mutable properties and the contents of Immutable Properties.” A check applied only to the outer list is one a peer opts out of by moving a pair inside the block, and the block is where an Original Publisher puts what a relay must not rewrite — which is where a track’s group order and dynamic-group support belong.

Bytes under 0xB that do not parse as a Key-Value-Pair run are left alone rather than refused. Section 12.7 says relays “MAY decode and view the Properties in the Key-Value-Pairs”, which is a permission and not a requirement, so a block this codec cannot read is carried to the caller intact instead of ending the session.