dns
Library
Module
Module type
Parameter
Class
Class type
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 |
| Delay of float | (* The caller shall wait for the specified duration in seconds. *) |
| Continue | (* The caller should invoke |
| NotReady | (* The call was unexpected. This may indicate a bug in the caller, and should be logged. *) |
| Stop | (*
|
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.
type conflict =
| NoConflict | (* No conflict occurred. *) |
| ConflictRestart | (* A conflict occurred. The caller should interrupt any |
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.