Skip to content

Releases: mirage/ocaml-dns

Mirage DNS resolver support and more examples

28 Aug 08:47
Compare
Choose a tag to compare
  • Add Dns_resolver_mirage module for making stub resolution requests
    using the Mirage module types.
  • Dns.Resolvconf parses /etc/resolv.conf entries using Ipaddr.t
    instead of string values now.
  • Adapt Dns_resolver and Dns_resolver_unix to use Ipaddr.t more.
  • Improve mldig to use Ipaddr more and add more RR printing to
    match the conventional dig tool behaviour.
  • Expose Dns.Packet.Not_implemented exception rather than a pattern
    match failure.
  • Depend on external Base64 package instead of bundling one inside
    the Dns packed module.
  • Add a local opam file for easier pinning.
  • Add an examples/ directory with a DNS forwarder sample (#21).

Fix file descriptor leak in resolver

29 Jul 15:58
Compare
Choose a tag to compare

Fix file descriptor leak in resolver (#15, #16) by expanding commfn with a cleanup function.

Fixes for Xen/Mirage backend

17 Jun 09:15
Compare
Choose a tag to compare
  • Ensure that all Dns.Buf.t buffers are page-aligned, via Io_page.
  • Remove a Unix dependency that snuck into the Dns_resolver portable core, by adding a timeout argument to the commfn type.
  • Improve ocamldoc in Dns_resolver_unix.

Support multiple zonefiles per server

19 Apr 18:47
Compare
Choose a tag to compare
  • Add process_of_zonebufs to handle multiple zone files.
  • Adapt Dns_server_unix to expose multiple zonebuf functions.

IPv6 support and better portability

18 Apr 08:40
Compare
Choose a tag to compare
  • Use Ipaddr.V6 to restore IPv6/AAAA RR support.
  • process_query now takes an output buffer so it doesn't have to
    overwrite the input buffer it just parsed.
  • Add Travis continuous integration scripts.
  • Regenerate with OASIS 0.4.1
  • Split the dns.lwt into a portable dns.lwt-core that doesn't
    require Unix (from which a Mirage version can be built). The only
    change to existing applications is that Unix-specific functions
    have shifted into Dns_resolver_unix or Dns_server_unix, with
    the module types for PROCESSOR and CLIENT unchanged.

Use Ipaddr and functional processor interfaces

18 Apr 08:40
Compare
Choose a tag to compare
  • Add path argument to `Resolv_conf in Dns_resolver.config.
  • Dns_resolver.t is now a record type rather than a first-class module.
  • Fix mldig server and port options.
  • Change Zone.load_zone to Zone.load and make it functional over Loader.db.
  • Use Ipaddr.V4.t addresses in favor of Cstruct or Uri_IP representations.
  • Fix RRSIG signed type to be of the answer rather than the question.
  • Fix ANY queries.
  • Add Buf to provide a nickname for char Bigarrays.
  • Change Packet.{parse,marshal} to use Buf.t rather than exposing Cstruct.t
  • Change Packet.parse to remove name map parameter
  • Factor protocol modules into Protocol with default DNS implementations
  • Add first-class PROCESSOR module to Dns_server for contextual
    protocol extensions
  • Change Dns_server.listen to accept processor
  • Rename Dns_server.listen_with_zonebuf and Dns_server.listen_with_zonefile
    to Dns_server.serve_with_zonebuf and Dns_server.serve_with_zonefile resp.
  • Add processor_of_process, process_of_zonebuf,
    eventual_process_of_zonefile, and serve_with_processor to Dns_server
  • Rename Query.query_answer to Query.answer
  • Add Query.response_of_answer and Query.answer_of_response
  • Move Dns_resolver.build_query to Query.create
  • By default, DNS packet IDs are randomly generated with Random
  • Dns_resolver now supports simultaneous resolver protocol requests
  • Fix reversed multiple TXT parse bug
  • Move DNSSEC implementation to <//github.com/dsheets/ocaml-dnssec>