pub enum ChallengeError {
Connection(String),
Dns(String),
IncorrectResponse(String),
Tls(String),
Unauthorized(String),
Internal(String),
}Expand description
Why a validation failed, mapped by the caller to the right ACME error.
The split mirrors Verdict: a statement
about the client’s setup is not the same as the server being unable to reach
a verdict at all.
Variants§
Connection(String)
The validation target could not be reached: TCP refused, no route, a redirect chain that never ended, the attempt timing out.
Dns(String)
A DNS query the challenge needed failed or returned nothing.
IncorrectResponse(String)
The target answered, but not with what the challenge requires — a TXT record that does not match, a certificate missing the expected extension.
Tls(String)
A TLS-level failure during a tls-alpn-01 handshake.
The target served something that is not the key authorization. RFC 8555 §8.3 uses this type for exactly that case.
Internal(String)
The validator itself failed — a bug, or a type with no validator behind it. The client may retry.
Implementations§
Trait Implementations§
Auto Trait Implementations§
impl Freeze for ChallengeError
impl RefUnwindSafe for ChallengeError
impl Send for ChallengeError
impl Sync for ChallengeError
impl Unpin for ChallengeError
impl UnsafeUnpin for ChallengeError
impl UnwindSafe for ChallengeError
Blanket Implementations§
Source§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
Source§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
impl<A, B, T> HttpServerConnExec<A, B> for Twhere
B: Body,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§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