Legend:
Library
Module
Module type
Parameter
Class
Class type
Library
Module
Module type
Parameter
Class
Class type
Implements the core of the unique name probing part of a Multicast DNS (mDNS) responder.
type datagram = Packet.t * Ipaddr.V4.t * int
A DNS packet to be sent with its destination IP address and UDP port number.
type action =
| Nothing
The protocol is idle because all names have been confirmed unique.
*)| ToSend of datagram
The caller shall send the specified datagram
.
| Delay of float
The caller shall wait for the specified duration in seconds.
*)| Continue
The caller should invoke do_probe
again.
| NotReady
The call was unexpected. This may indicate a bug in the caller, and should be logged.
*)| Stop
stop
has been called.
The I/O action that the caller of this module must take.
Marks a Name.t as unique. The name will be included in the next probe cycle.
Initiates the probe protocol and returns the I/O action that the caller should take.
After completing a ToSend
action, call this function to continue the probe protocol.
After completing a Delay
action, call this function to continue the probe protocol.
val is_first_complete : state -> bool
Returns true
if the first probe cycle has completed successfully.
Indicates whether the received datagram caused a restart of the probe cycle due to a conflict.
Call this function when an mDNS response packet is received, in order to check for conflicting resource records.
Call this function when an mDNS query packet is received, in order to check for simultaneous probe conflicts.
Returns true
if the name has been confirmed unique (probed successfully). This is intended for controlling the cache flush bit.