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§
source§impl 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§
source§impl Clone for MdnsQueryType
impl Clone for MdnsQueryType
source§fn clone(&self) -> MdnsQueryType
fn clone(&self) -> MdnsQueryType
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl Debug for MdnsQueryType
impl Debug for MdnsQueryType
source§impl PartialEq for MdnsQueryType
impl PartialEq for MdnsQueryType
source§fn eq(&self, other: &MdnsQueryType) -> bool
fn eq(&self, other: &MdnsQueryType) -> bool
self
and other
values to be equal, and is used
by ==
.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§
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
§impl<Q, K> Equivalent<K> for Qwhere
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
impl<Q, K> Equivalent<K> for Qwhere Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§impl<Q, K> Equivalent<K> for Qwhere
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
impl<Q, K> Equivalent<K> for Qwhere Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key
and return true
if they are equal.