#[non_exhaustive]pub enum ConnectError {
Show 15 variants
BadEnvironment,
CannotParse(LoadError),
CannotResolvePath(CfgPathError),
CannotResolveConnectPoint(ResolveError),
CannotConnect(ConnectError),
InvalidBanner,
AllAttemptsDeclined,
RelativeConnectFile,
AuthenticationFailed(ErrorResponse),
AuthenticationNotSupported,
BadMessage(Arc<Error>),
ProtoError(ProtoError),
ServerAddressMismatch {
ours: String,
theirs: String,
},
CookieMismatch,
LoadCookie(CookieAccessError),
}
Expand description
An error while trying to connect to the Arti process.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
BadEnvironment
Unable to parse connect points from an environment variable.
CannotParse(LoadError)
We were unable to load and/or parse a given connect point.
CannotResolvePath(CfgPathError)
The path used to specify a connect file couldn’t be resolved.
CannotResolveConnectPoint(ResolveError)
A parsed connect point couldn’t be resolved.
CannotConnect(ConnectError)
IO error while connecting to Arti.
InvalidBanner
Opened a connection, but didn’t get a banner message.
(This isn’t a BadMessage
, since it is likelier to represent something that isn’t
pretending to be Arti at all than it is to be a malfunctioning Arti.)
AllAttemptsDeclined
All attempted connect points were declined, and none were aborted.
RelativeConnectFile
A connect file or directory was given as a relative path. (Only absolute paths are supported).
AuthenticationFailed(ErrorResponse)
One of our authentication messages received an error.
AuthenticationNotSupported
The connect point uses an RPC authentication type we don’t support.
BadMessage(Arc<Error>)
We couldn’t decode one of the responses we got.
ProtoError(ProtoError)
A protocol error occurred during negotiations.
ServerAddressMismatch
The server thinks it is listening on an address where we don’t expect to find it. This can be misconfiguration or an attempted MITM attack.
Fields
CookieMismatch
The server tried to prove knowledge of a cookie file, but its proof was incorrect.
LoadCookie(CookieAccessError)
We were unable to access the configured cookie file.
Trait Implementations§
Source§impl Clone for ConnectError
impl Clone for ConnectError
Source§fn clone(&self) -> ConnectError
fn clone(&self) -> ConnectError
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moreSource§impl Debug for ConnectError
impl Debug for ConnectError
Source§impl Display for ConnectError
impl Display for ConnectError
Source§impl Error for ConnectError
impl Error for ConnectError
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
Source§impl From<ConnectError> for ConnectError
impl From<ConnectError> for ConnectError
Source§fn from(source: ConnectError) -> Self
fn from(source: ConnectError) -> Self
Source§impl From<CookieAccessError> for ConnectError
impl From<CookieAccessError> for ConnectError
Source§fn from(source: CookieAccessError) -> Self
fn from(source: CookieAccessError) -> Self
Source§impl From<LoadError> for ConnectError
impl From<LoadError> for ConnectError
Source§impl From<ProtoError> for ConnectError
impl From<ProtoError> for ConnectError
Source§fn from(source: ProtoError) -> Self
fn from(source: ProtoError) -> Self
Source§impl From<ResolveError> for ConnectError
impl From<ResolveError> for ConnectError
Source§fn from(source: ResolveError) -> Self
fn from(source: ResolveError) -> Self
Source§impl HasClientErrorAction for ConnectError
impl HasClientErrorAction for ConnectError
Source§fn client_action(&self) -> ClientErrorAction
fn client_action(&self) -> ClientErrorAction
Auto Trait Implementations§
impl Freeze for ConnectError
impl !RefUnwindSafe for ConnectError
impl Send for ConnectError
impl Sync for ConnectError
impl Unpin for ConnectError
impl !UnwindSafe for ConnectError
Blanket Implementations§
§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<E> ErrorReport for Ewhere
E: Error + 'static,
impl<E> ErrorReport for Ewhere
E: Error + 'static,
Source§fn report(&self) -> Report<ReportHelper<'_>>
fn report(&self) -> Report<ReportHelper<'_>>
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more