pub struct DnsblCache { /* private fields */ }Expand description
TTL-cached DNSBL lookup. Avoids repeated DNS queries for IPs we’ve seen recently.
Caches both positive results (listed → known bad) and negative results (not listed → known good). The TTL applies uniformly; if you want different positive vs negative TTLs, run two caches.
Storage is Mutex<HashMap> — fine for sub-1k entries with moderate
throughput. For higher contention, wrap your own DashMap and call
check_dnsbl directly.
Implementations§
Source§impl DnsblCache
impl DnsblCache
Sourcepub async fn check(
&self,
resolver: &TokioResolver,
ip: IpAddr,
zones: &[String],
) -> Option<(String, DnsblResult)>
pub async fn check( &self, resolver: &TokioResolver, ip: IpAddr, zones: &[String], ) -> Option<(String, DnsblResult)>
check with cache: return cached result if fresh, otherwise query DNS
Auto Trait Implementations§
impl !Freeze for DnsblCache
impl RefUnwindSafe for DnsblCache
impl Send for DnsblCache
impl Sync for DnsblCache
impl Unpin for DnsblCache
impl UnsafeUnpin for DnsblCache
impl UnwindSafe for DnsblCache
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
Mutably borrows from an owned value. Read more
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>
Converts
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>
Converts
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