Enum trust_dns_proto::multicast::MdnsQueryType
source · [−]pub enum MdnsQueryType {
OneShot,
Continuous,
OneShotJoin,
Passive,
}
mdns
only.Expand description
See rfc6762 details on these different types.
Variants
OneShot
The querier using this socket will only perform standard DNS queries over multicast. (clients only)
Effectively treats mDNS as essentially no different than any other DNS query; one request followed by one response. Only one UDP socket will be created.
Continuous
The querier is fully compliant with rfc6762. (servers, clients)
mDNS capable clients will sent messages with many queries, and they will expect many responses. Two UDP sockets will be created, one for receiving multicast traffic, the other used for sending queries and direct responses. This requires port 5353 to be available on the system (many modern OSes already have mDNSResponders running taking this port).
OneShotJoin
The querier operates under the OneShot semantics, but also joins the multicast group. (non-compliant servers, clients)
This is not defined in the mDNS RFC, but allows for a multicast client to join the group, receiving all multicast network traffic. This is useful where listening for all mDNS traffic is of interest, but because another mDNS process may have already taken the known port, 5353. Query responses will come from and to the standard UDP socket with a random port, multicast traffic will come from the multicast socket. This will create two sockets.
Passive
The querier operates under the OneShot semantics, but also joins the multicast group. (servers)
Not defined in the RFC, allows for a passive listener to receive all mDNS traffic.
Implementations
sourceimpl MdnsQueryType
impl MdnsQueryType
sourcepub fn sender(self) -> bool
pub fn sender(self) -> bool
This will be sending packets, i.e. a standard UDP socket will be created
sourcepub fn bind_on_5353(self) -> bool
pub fn bind_on_5353(self) -> bool
Returns true if this process can bind to *:5353
sourcepub fn join_multicast(self) -> bool
pub fn join_multicast(self) -> bool
Returns true if this mDNS client should join, listen, on the multicast address
Trait Implementations
sourceimpl Clone for MdnsQueryType
impl Clone for MdnsQueryType
sourcefn clone(&self) -> MdnsQueryType
fn clone(&self) -> MdnsQueryType
Returns a copy of the value. Read more
1.0.0 · sourcefn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from source
. Read more
sourceimpl Debug for MdnsQueryType
impl Debug for MdnsQueryType
sourceimpl PartialEq<MdnsQueryType> for MdnsQueryType
impl PartialEq<MdnsQueryType> for MdnsQueryType
impl Copy for MdnsQueryType
impl Eq for MdnsQueryType
impl StructuralEq for MdnsQueryType
impl StructuralPartialEq for MdnsQueryType
Auto Trait Implementations
impl RefUnwindSafe for MdnsQueryType
impl Send for MdnsQueryType
impl Sync for MdnsQueryType
impl Unpin for MdnsQueryType
impl UnwindSafe for MdnsQueryType
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<Q, K> Equivalent<K> for Q where
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
impl<Q, K> Equivalent<K> for Q where
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
sourcefn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to key
and return true
if they are equal.
sourceimpl<T> Instrument for T
impl<T> Instrument for T
sourcefn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
sourcefn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
sourceimpl<T> ToOwned for T where
T: Clone,
impl<T> ToOwned for T where
T: Clone,
type Owned = T
type Owned = T
The resulting type after obtaining ownership.
sourcefn clone_into(&self, target: &mut T)
fn clone_into(&self, target: &mut T)
toowned_clone_into
)Uses borrowed data to replace owned data, usually by cloning. Read more
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
fn vzip(self) -> V
sourceimpl<T> WithSubscriber for T
impl<T> WithSubscriber for T
sourcefn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> where
S: Into<Dispatch>,
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
sourcefn with_current_subscriber(self) -> WithDispatch<Self>
fn with_current_subscriber(self) -> WithDispatch<Self>
Attaches the current default Subscriber
to this type, returning a
WithDispatch
wrapper. Read more