#[non_exhaustive]pub enum Error {
Show 33 variants
BindSocket(Error),
CreateEndpoint(Error),
CreateQlog(Error),
NoRuntime,
LocalAddr(Error),
ResolveBind(Error),
InvalidDnsName,
DnsLookup(Error),
NoDnsEntries,
FetchFingerprint(Error),
FingerprintStatus(Error),
ReadFingerprint(Error),
InvalidFingerprint(FromHexError),
InvalidScheme,
UnsupportedScheme(String),
MissingHandshake,
MissingAlpn,
DecodeAlpn(FromUtf8Error),
UnsupportedAlpn(String),
MissingServerName,
BuildUrl(ParseError),
QuicLbNonceTooSmall,
QuicLbCidTooLong(usize),
ClientVerifier(VerifierBuilderError),
NoInitialCipherSuite(NoInitialCipherSuite),
Connect(ConnectError),
Connection(ConnectionError),
Client(ClientError),
ConnectRejected(ConnectError),
Server(ServerError),
Establish(ConnectionError),
RecvRequest(ServerError),
Tls(Error),
}Expand description
Errors specific to the quinn QUIC backend.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
BindSocket(Error)
The UDP socket couldn’t be bound, usually because the address is already in use.
CreateEndpoint(Error)
The bound socket couldn’t be turned into a QUIC endpoint.
CreateQlog(Error)
The qlog trace file couldn’t be created, usually a missing directory.
NoRuntime
Quinn found no async runtime. Construct the client or server from within a tokio context.
LocalAddr(Error)
The endpoint’s local address couldn’t be read back from the OS.
ResolveBind(Error)
The server’s configured bind address couldn’t be resolved.
InvalidDnsName
The URL has no host to connect to.
DnsLookup(Error)
Resolving the URL’s host failed.
NoDnsEntries
DNS returned no address usable from the local socket, usually an address family mismatch.
FetchFingerprint(Error)
The insecure http:// bootstrap couldn’t fetch /certificate.sha256.
FingerprintStatus(Error)
The /certificate.sha256 fetch returned a non-success status.
ReadFingerprint(Error)
The fingerprint response body couldn’t be read.
InvalidFingerprint(FromHexError)
The fetched fingerprint wasn’t valid hex.
InvalidScheme
The URL scheme isn’t one this backend can dial.
UnsupportedScheme(String)
The URL scheme passed the initial check but has no session type, which means it slipped through a scheme list.
MissingHandshake
The connection came up without TLS handshake data, so the negotiated ALPN can’t be read.
MissingAlpn
TLS negotiated no ALPN, so there’s no protocol to speak.
DecodeAlpn(FromUtf8Error)
The negotiated ALPN wasn’t valid UTF-8.
UnsupportedAlpn(String)
The peer negotiated an ALPN this endpoint doesn’t handle.
MissingServerName
A raw QUIC client connected without SNI, so the server can’t tell which host it wanted.
BuildUrl(ParseError)
The client’s SNI hostname didn’t form a valid URL.
QuicLbNonceTooSmall
The configured QUIC-LB nonce is too short to be unguessable.
QuicLbCidTooLong(usize)
The QUIC-LB server ID plus nonce doesn’t fit in a connection ID. Shorten one of them.
ClientVerifier(VerifierBuilderError)
The mTLS client verifier couldn’t be built from the configured roots.
NoInitialCipherSuite(NoInitialCipherSuite)
The rustls crypto provider offers no cipher suite usable for QUIC initial packets.
Connect(ConnectError)
Quinn refused to start the connection, before any packet was sent.
Connection(ConnectionError)
The QUIC connection failed or was closed by the peer.
Client(ClientError)
The WebTransport client handshake failed.
ConnectRejected(ConnectError)
The server answered the WebTransport CONNECT with a rejection status.
Server(ServerError)
The WebTransport server handshake failed while responding.
Establish(ConnectionError)
The QUIC handshake didn’t complete for an incoming connection.
RecvRequest(ServerError)
The client never sent a usable WebTransport CONNECT request.
Tls(Error)
The TLS configuration or certificates couldn’t be loaded.
Trait Implementations§
Source§impl Error for Error
impl Error for Error
Source§fn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
1.0.0 · Source§fn description(&self) -> &str
fn description(&self) -> &str
use the Display impl or to_string()