Struct BlocklistConfig

Source
pub struct BlocklistConfig {
    pub wildcard_match: bool,
    pub min_wildcard_depth: u8,
    pub lists: Vec<String>,
    pub sinkhole_ipv4: Option<Ipv4Addr>,
    pub sinkhole_ipv6: Option<Ipv6Addr>,
    pub ttl: u32,
    pub block_message: Option<String>,
    pub consult_action: BlocklistConsultAction,
}
Available on crate feature blocklist only.
Expand description

Configuration for file based zones

Fields§

§wildcard_match: bool

Support wildcards? Defaults to true. If set to true, block list entries containing asterisks will be expanded to match queries.

§min_wildcard_depth: u8

Minimum wildcard depth. Defaults to 2. Any wildcard entries without at least this many static elements will not be expanded (e.g., *.com has a depth of 1; *.example.com has a depth of two.) This is meant as a safeguard against an errant block list entry, such as * or *.com that might block many more hosts than intended.

§lists: Vec<String>

Block lists to load. These should be specified as relative (to the server zone directory) paths in the config file.

§sinkhole_ipv4: Option<Ipv4Addr>

IPv4 sinkhole IP. This is the IP that is returned when a blocklist entry is matched for an A query. If unspecified, an implementation-provided default will be used.

§sinkhole_ipv6: Option<Ipv6Addr>

IPv6 sinkhole IP. This is the IP that is returned when a blocklist entry is matched for a AAAA query. If unspecified, an implementation-provided default will be used.

§ttl: u32

Block TTL. This is the length of time a block response should be stored in the requesting resolvers cache, in seconds. Defaults to 86,400 seconds.

§block_message: Option<String>

Block message to return to the user. This is an optional message that, if configured, will be returned as a TXT record in the additionals section when a blocklist entry is matched for a query.

§consult_action: BlocklistConsultAction

The consult action controls how the blocklist handles queries where another authority has already provided an answer. By default, it ignores any such queries (“Disabled”,) however it can be configured to log blocklist matches for those queries (“Log”,) or can be configured to overwrite the previous responses (“Enforce”.)

Trait Implementations§

Source§

impl Clone for BlocklistConfig

Source§

fn clone(&self) -> BlocklistConfig

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for BlocklistConfig

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for BlocklistConfig

Source§

fn default() -> Self

Returns the “default value” for a type. Read more
Source§

impl<'de> Deserialize<'de> for BlocklistConfig

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl PartialEq for BlocklistConfig

Source§

fn eq(&self, other: &BlocklistConfig) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Eq for BlocklistConfig

Source§

impl StructuralPartialEq for BlocklistConfig

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,

Source§

impl<T> ErasedDestructor for T
where T: 'static,

Source§

impl<T> MaybeSendSync for T