#[repr(u64)]pub enum SessionErrorCode {
Show 21 variants
NoError = 0,
InternalError = 1,
Unauthorized = 2,
ProtocolViolation = 3,
InvalidRequestId = 4,
DuplicateTrackAlias = 5,
KeyValueFormattingError = 6,
InvalidPath = 8,
MalformedPath = 9,
GoawayTimeout = 16,
ControlMessageTimeout = 17,
DataStreamTimeout = 18,
AuthTokenCacheOverflow = 19,
DuplicateAuthTokenAlias = 20,
VersionNegotiationFailed = 21,
MalformedAuthToken = 22,
UnknownAuthTokenAlias = 23,
ExpiredAuthToken = 24,
InvalidAuthority = 25,
MalformedAuthority = 26,
TooManyRequestUpdates = 27,
}Expand description
Session termination error codes (draft-19 Section 15.11.1).
Sent as the error code when closing the Transport Session: the QUIC CONNECTION_CLOSE frame
over native QUIC, or the CLOSE_WEBTRANSPORT_SESSION capsule over WebTransport. The per-code
definitions are in Section 3.5 of the draft. Note that this draft assigns no code point 0x7,
and none in 0xA-0xF. 0x7 was last assigned by draft-17, as INVALID_REQUIRED_REQUEST_ID;
drafts 14 through 16 used it for TOO_MANY_REQUESTS. Draft-18 vacated it and draft-19 leaves
it vacant.
The registry also reserves the code points 0x7f * N + 0x9D for greasing (draft-19 Section
14). That is a range rather than an assignment, so it has no variant here and from_u64
reports it as unknown.
Variants§
NoError = 0
NO_ERROR — The session is being terminated without an error.
InternalError = 1
INTERNAL_ERROR — An implementation specific error occurred.
UNAUTHORIZED — The client is not authorized to establish a session.
ProtocolViolation = 3
PROTOCOL_VIOLATION — The remote endpoint performed an action that was disallowed by the
specification.
InvalidRequestId = 4
INVALID_REQUEST_ID — The endpoint received a Request ID with an incorrect least
significant bit for the sender, or a duplicate Request ID. See Section 10.1.
DuplicateTrackAlias = 5
DUPLICATE_TRACK_ALIAS — The endpoint attempted to use a Track Alias that was already in
use.
KeyValueFormattingError = 6
KEY_VALUE_FORMATTING_ERROR — The key-value pair has a formatting error.
InvalidPath = 8
INVALID_PATH — The PATH parameter was used by a server, on a WebTransport session, or
the server does not support the path.
MalformedPath = 9
MALFORMED_PATH — The PATH parameter does not conform to the rules in Section 10.3.1.2.
GoawayTimeout = 16
GOAWAY_TIMEOUT — The session was closed because the peer took too long to close the
session in response to a GOAWAY (Section 10.4) message. See session migration (Section
3.6).
ControlMessageTimeout = 17
CONTROL_MESSAGE_TIMEOUT — The session was closed because the peer took too long to
respond to a control message.
DataStreamTimeout = 18
DATA_STREAM_TIMEOUT — The session was closed because the peer took too long to send data
expected on an open Data Stream (see Section 11). This includes fields of a stream header
or an object header within a data stream. If an endpoint times out waiting for a new
object header on an open subgroup stream, it MAY send a STOP_SENDING on that stream or
terminate the subscription.
AuthTokenCacheOverflow = 19
AUTH_TOKEN_CACHE_OVERFLOW — The Session limit Section 10.3.1.3 of the size of all
registered Authorization tokens has been exceeded.
DuplicateAuthTokenAlias = 20
DUPLICATE_AUTH_TOKEN_ALIAS — Authorization Token attempted to register an Alias that was
in use (see Section 10.2.2).
VersionNegotiationFailed = 21
VERSION_NEGOTIATION_FAILED — The client didn’t offer a version supported by the server.
MalformedAuthToken = 22
MALFORMED_AUTH_TOKEN — Invalid Auth Token serialization during registration (see Section
10.2.2).
UnknownAuthTokenAlias = 23
UNKNOWN_AUTH_TOKEN_ALIAS — No registered token found for the provided Alias (see Section
10.2.2).
ExpiredAuthToken = 24
EXPIRED_AUTH_TOKEN — Authorization token has expired (Section 10.2.2).
InvalidAuthority = 25
INVALID_AUTHORITY — The specified AUTHORITY does not correspond to this server or cannot
be used in this context.
MalformedAuthority = 26
MALFORMED_AUTHORITY — The AUTHORITY value is syntactically invalid.
TooManyRequestUpdates = 27
TOO_MANY_REQUEST_UPDATES — The endpoint received a REQUEST_UPDATE that exceeded the
per-stream limit communicated via the MAX_REQUEST_UPDATES Setup Option (Section 10.3.1.7).
Implementations§
Source§impl SessionErrorCode
impl SessionErrorCode
Sourcepub const ALL: &[SessionErrorCode]
pub const ALL: &[SessionErrorCode]
Every Session Error Code draft-19 assigns, in ascending wire order.
This is the set Self::from_u64 accepts, written out so that it can
be enumerated: nothing can iterate an enum’s variants, so a caller that
wants the registry has to be handed it. Writing it down is also what
lets a test state its claims about the registry itself rather than about
the range some sweep happens to reach — that this is the set from_u64
answers to, and that none of it lands in the range the draft reserves
for greasing.
Trait Implementations§
Source§impl Clone for SessionErrorCode
impl Clone for SessionErrorCode
Source§fn clone(&self) -> SessionErrorCode
fn clone(&self) -> SessionErrorCode
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more