pub struct TraceHop {
pub zone: String,
pub server: String,
pub address: String,
pub query_time_ms: u64,
pub status: DnsStatus,
pub authoritative: bool,
pub referral_zone: Option<String>,
pub referral: Vec<String>,
pub answers: Vec<DnsRecord>,
pub failed_servers: Vec<String>,
}Expand description
One delegation level of a DnsTrace: the server that answered for
zone, and what it said.
Zone and server names are fully qualified, lowercase ASCII (IDNs as
xn-- A-labels), as dig +trace prints them: "." is the root, then
e.g. "com." and "example.com.".
Fields§
§zone: StringThe zone this server was asked as an authority for ("." = root).
server: StringThe nameserver’s host name, e.g. "a.root-servers.net.".
address: StringThe address actually queried.
query_time_ms: u64Round-trip time of the query, in milliseconds.
status: DnsStatusThe response code.
The response’s AA (authoritative answer) bit.
referral_zone: Option<String>The zone the server delegated to — the next hop’s zone — or None
when it did not refer onward. A referral the walk refused (upward or
sideways) is recorded here too when it ends the trace, with an error.
referral: Vec<String>The NS names delegated to, sorted; empty when there is no referral.
answers: Vec<DnsRecord>This response’s ANSWER section, every record under its real owner name (normally only the final hop has one).
failed_servers: Vec<String>Servers of this zone — or single addresses of one — that were skipped
or failed before this one answered, as "host (ip): reason", or
"host: reason" when no address was found for the host.
Trait Implementations§
Source§impl<'de> Deserialize<'de> for TraceHop
impl<'de> Deserialize<'de> for TraceHop
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
impl Eq for TraceHop
impl StructuralPartialEq for TraceHop
Auto Trait Implementations§
impl Freeze for TraceHop
impl RefUnwindSafe for TraceHop
impl Send for TraceHop
impl Sync for TraceHop
impl Unpin for TraceHop
impl UnsafeUnpin for TraceHop
impl UnwindSafe for TraceHop
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
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.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