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