Trait trust_dns_server::authority::AuthorityObject[][src]

pub trait AuthorityObject: Send + Sync {
    fn zone_type(&self) -> ZoneType;
fn is_axfr_allowed(&self) -> bool;
fn update(&mut self, update: &MessageRequest) -> UpdateResult<bool>;
fn origin(&self) -> &LowerName;
fn lookup(
        &self,
        name: &LowerName,
        rtype: RecordType,
        is_secure: bool,
        supported_algorithms: SupportedAlgorithms
    ) -> BoxedLookupFuture;
fn search(
        &self,
        query: &LowerQuery,
        is_secure: bool,
        supported_algorithms: SupportedAlgorithms
    ) -> BoxedLookupFuture;
fn get_nsec_records(
        &self,
        name: &LowerName,
        is_secure: bool,
        supported_algorithms: SupportedAlgorithms
    ) -> BoxedLookupFuture; fn ns(
        &self,
        is_secure: bool,
        supported_algorithms: SupportedAlgorithms
    ) -> BoxedLookupFuture { ... }
fn soa(&self) -> BoxedLookupFuture { ... }
fn soa_secure(
        &self,
        is_secure: bool,
        supported_algorithms: SupportedAlgorithms
    ) -> BoxedLookupFuture { ... }
fn add_update_auth_key(
        &mut self,
        _name: Name,
        _key: KEY
    ) -> DnsSecResult<()> { ... }
fn add_zone_signing_key(&mut self, _signer: Signer) -> DnsSecResult<()> { ... }
fn secure_zone(&mut self) -> DnsSecResult<()> { ... } }

An Object safe Authority

Required methods

fn zone_type(&self) -> ZoneType[src]

What type is this zone

fn is_axfr_allowed(&self) -> bool[src]

Return true if AXFR is allowed

fn update(&mut self, update: &MessageRequest) -> UpdateResult<bool>[src]

Perform a dynamic update of a zone

fn origin(&self) -> &LowerName[src]

Get the origin of this zone, i.e. example.com is the origin for www.example.com

fn lookup(
    &self,
    name: &LowerName,
    rtype: RecordType,
    is_secure: bool,
    supported_algorithms: SupportedAlgorithms
) -> BoxedLookupFuture
[src]

Looks up all Resource Records matching the giving Name and RecordType.

Arguments

  • name - The Name, label, to lookup.
  • rtype - The RecordType, to lookup. RecordType::ANY will return all records matching name. RecordType::AXFR will return all record types except RecordType::SOA due to the requirements that on zone transfers the RecordType::SOA must both precede and follow all other records.
  • is_secure - If the DO bit is set on the EDNS OPT record, then return RRSIGs as well.

Return value

None if there are no matching records, otherwise a Vec containing the found records.

fn search(
    &self,
    query: &LowerQuery,
    is_secure: bool,
    supported_algorithms: SupportedAlgorithms
) -> BoxedLookupFuture
[src]

Using the specified query, perform a lookup against this zone.

Arguments

  • query - the query to perform the lookup with.
  • is_secure - if true, then RRSIG records (if this is a secure zone) will be returned.

Return value

Returns a vectory containing the results of the query, it will be empty if not found. If is_secure is true, in the case of no records found then NSEC records will be returned.

fn get_nsec_records(
    &self,
    name: &LowerName,
    is_secure: bool,
    supported_algorithms: SupportedAlgorithms
) -> BoxedLookupFuture
[src]

Return the NSEC records based on the given name

Arguments

  • name - given this name (i.e. the lookup name), return the NSEC record that is less than this
  • is_secure - if true then it will return RRSIG records as well
Loading content...

Provided methods

fn ns(
    &self,
    is_secure: bool,
    supported_algorithms: SupportedAlgorithms
) -> BoxedLookupFuture
[src]

Get the NS, NameServer, record for the zone

fn soa(&self) -> BoxedLookupFuture[src]

Returns the SOA of the authority.

Note: This will only return the SOA, if this is fulfilling a request, a standard lookup should be used, see soa_secure(), which will optionally return RRSIGs.

fn soa_secure(
    &self,
    is_secure: bool,
    supported_algorithms: SupportedAlgorithms
) -> BoxedLookupFuture
[src]

Returns the SOA record for the zone

fn add_update_auth_key(&mut self, _name: Name, _key: KEY) -> DnsSecResult<()>[src]

Add a (Sig0) key that is authorized to perform updates against this authority

fn add_zone_signing_key(&mut self, _signer: Signer) -> DnsSecResult<()>[src]

Add Signer

fn secure_zone(&mut self) -> DnsSecResult<()>[src]

Sign the zone for DNSSEC

Loading content...

Implementors

impl<A, L> AuthorityObject for A where
    A: Authority<Lookup = L> + Send + Sync + 'static,
    A::LookupFuture: Send + 'static,
    L: LookupObject + Send + 'static, 
[src]

fn zone_type(&self) -> ZoneType[src]

What type is this zone

fn is_axfr_allowed(&self) -> bool[src]

Return true if AXFR is allowed

fn update(&mut self, update: &MessageRequest) -> UpdateResult<bool>[src]

Perform a dynamic update of a zone

fn origin(&self) -> &LowerName[src]

Get the origin of this zone, i.e. example.com is the origin for www.example.com

fn lookup(
    &self,
    name: &LowerName,
    rtype: RecordType,
    is_secure: bool,
    supported_algorithms: SupportedAlgorithms
) -> BoxedLookupFuture
[src]

Looks up all Resource Records matching the giving Name and RecordType.

Arguments

  • name - The Name, label, to lookup.
  • rtype - The RecordType, to lookup. RecordType::ANY will return all records matching name. RecordType::AXFR will return all record types except RecordType::SOA due to the requirements that on zone transfers the RecordType::SOA must both precede and follow all other records.
  • is_secure - If the DO bit is set on the EDNS OPT record, then return RRSIGs as well.

Return value

None if there are no matching records, otherwise a Vec containing the found records.

fn search(
    &self,
    query: &LowerQuery,
    is_secure: bool,
    supported_algorithms: SupportedAlgorithms
) -> BoxedLookupFuture
[src]

Using the specified query, perform a lookup against this zone.

Arguments

  • query - the query to perform the lookup with.
  • is_secure - if true, then RRSIG records (if this is a secure zone) will be returned.

Return value

Returns a vectory containing the results of the query, it will be empty if not found. If is_secure is true, in the case of no records found then NSEC records will be returned.

fn get_nsec_records(
    &self,
    name: &LowerName,
    is_secure: bool,
    supported_algorithms: SupportedAlgorithms
) -> BoxedLookupFuture
[src]

Return the NSEC records based on the given name

Arguments

  • name - given this name (i.e. the lookup name), return the NSEC record that is less than this
  • is_secure - if true then it will return RRSIG records as well
Loading content...