Module Dns_server_unix

val bind_fd : address:string ‑> port:int ‑> (Lwt_unix.file_descr * Lwt_unix.sockaddr) Lwt.t

Given a source address and a port, return a bound file descriptor and source sockaddr suitable for passing to the listen functions

val eventual_process_of_zonefiles : string list ‑> Dns.Packet.t Dns_server.process Lwt.t
val listen : fd:Lwt_unix.file_descr ‑> src:Lwt_unix.sockaddr ‑> processor:(module Dns_server.PROCESSOR) ‑> unit Lwt.t

General listening function for DNS servers. Pass in the fd and src from calling bind_fd and supply a processor which deserializes the wire format, generates a DNS response packet, and serializes it into the wire format

val serve_with_processor : address:string ‑> port:int ‑> processor:(module Dns_server.PROCESSOR) ‑> unit Lwt.t
val serve_with_zonebuf : address:string ‑> port:int ‑> zonebuf:string ‑> unit Lwt.t
val serve_with_zonebufs : address:string ‑> port:int ‑> zonebufs:string list ‑> unit Lwt.t
val serve_with_zonefile : address:string ‑> port:int ‑> zonefile:string ‑> unit Lwt.t
val serve_with_zonefiles : address:string ‑> port:int ‑> zonefiles:string list ‑> unit Lwt.t