pub struct SsrfDnsRefusal { /* private fields */ }Expand description
Typed marker for an SSRF-policy refusal raised while resolving a hostname (RFC-ACDP-0006 §7.1 / RFC-ACDP-0008 §4.8 DNS-rebinding protection).
acdp_safe_http::SafeDnsResolver returns this as the error of a
refused resolution. reqwest wraps it (as an io::Error /
connector error) before it reaches the caller, so it surfaces only in
the source() chain of the resulting reqwest::Error;
is_ssrf_refusal finds it there by downcast. Its presence is what
makes From<reqwest::Error> for AcdpError (and WebResolver)
classify the failure as permanent instead of as a retryable
transport error.
Not a wire code: this never appears in a registry response body.
Implementations§
Source§impl SsrfDnsRefusal
impl SsrfDnsRefusal
Sourcepub fn new(message: impl Into<String>) -> Self
pub fn new(message: impl Into<String>) -> Self
Build a refusal carrying a human-readable explanation. The
message SHOULD start with SSRF_POLICY_PREFIX (every
acdp-safe-http refusal does) so it stays recognizable even after
a wrapper stringifies it.
Trait Implementations§
Source§impl Clone for SsrfDnsRefusal
impl Clone for SsrfDnsRefusal
Source§impl Debug for SsrfDnsRefusal
impl Debug for SsrfDnsRefusal
Source§impl Display for SsrfDnsRefusal
impl Display for SsrfDnsRefusal
impl Eq for SsrfDnsRefusal
Source§impl Error for SsrfDnsRefusal
impl Error for SsrfDnsRefusal
1.30.0 · 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()
Source§impl PartialEq for SsrfDnsRefusal
impl PartialEq for SsrfDnsRefusal
impl StructuralPartialEq for SsrfDnsRefusal
Auto Trait Implementations§
impl Freeze for SsrfDnsRefusal
impl RefUnwindSafe for SsrfDnsRefusal
impl Send for SsrfDnsRefusal
impl Sync for SsrfDnsRefusal
impl Unpin for SsrfDnsRefusal
impl UnsafeUnpin for SsrfDnsRefusal
impl UnwindSafe for SsrfDnsRefusal
Blanket Implementations§
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<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.