package dns-client
Install
Dune Dependency
Authors
Maintainers
Sources
sha256=72c0a1a91c8e409bd448c8e0ea28d16d13177c326aea403ee1c30ddcb5969adc
sha512=f5067d4ef6aca863bd06e6721a63a03da80052ab8e361440e72fae07ca45773763e0321236c6810afe80bd679d68763dc63fb57aec2e953173cc9a944785c93c
doc/dns-client.unix/Dns_client_unix/Transport/index.html
Module Dns_client_unix.Transport
Source
A flow module based on blocking I/O on top of the Unix socket API.
TODO: Implement the connect timeout.
A context is a network connection initialized by T.connect
io
is the type of an effect. 'err
is a polymorphic variant.
An address for a given context type, usually this will consist of IP address + a TCP/IP or UDP/IP port number, but for some context types it can carry additional information for purposes of cryptographic verification. TODO at least that would be nice in the future. TODO
TODO well this is kind of crude; it's a tuple to prevent having to do endless amounts of currying things when implementing context types, and we need to know the protocol used so we can prefix packets for DNS-over-TCP and set correct socket options etc. therefore we can't just use the opaque io_addr
. TODO
A stack with which to connect, e.g. IPv4.tcpv4
The abstract state of a DNS client.
create ~nameserver ~timeout stack
creates the state record of the DNS client. We use timeout
(ns) as a cumulative time budget for connect and request timeouts.
The address of a nameserver that is supposed to work with the underlying context, can be used if the user does not want to bother with configuring their own.
rng t
is a random number generator.
clock t
is the monotonic clock.
connect addr
is a new connection (context
) to addr
, or an error.
send context buffer
sends buffer
to the context
upstream.
recv context
tries to read a buffer
from the context
downstream.