pub enum MdnsQueryType {
    OneShot,
    Continuous,
    OneShotJoin,
    Passive,
}
Available on crate feature 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

This will be sending packets, i.e. a standard UDP socket will be created

Returns true if this process can bind to *:5353

Returns true if this mDNS client should join, listen, on the multicast address

Trait Implementations

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

Formats the value using the given formatter. Read more

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason. Read more

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

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

Returns the argument unchanged.

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

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

Calls U::from(self).

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

The resulting type after obtaining ownership.

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

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

The type returned in the event of a conversion error.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.

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

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