Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[new release] dns (12 packages) (8.0.0) #25965

Merged
merged 5 commits into from
May 30, 2024
Merged

Conversation

hannesm
Copy link
Member

@hannesm hannesm commented May 29, 2024

An opinionated Domain Name System (DNS) library

CHANGES:

CHANGES:

* dns-client (lwt, mirage): depend on happy-eyeballs-{lwt,mirage} instead of
  duplicating the code. This requires happy-eyeballs 1.1.0, and now the same
  Happy_eyeballs_{lwt,mirage}.t is used for DNS (connecting to the nameserver)
  and for the application (connecting to a remote host)
  (@dinosaure @hannesm mirage/ocaml-dns#346)
* server: improve API documentation (@hannesm
  1a80bd4080e597687152cf351d035ef5f00c5946
  000ae02dfc477d91c05891e3891a447328ae448a)
* server: add a `packet_callback` to `handle_packet` and `handle_buf`
  (@RyanGibb mirage/ocaml-dns#349)
* server: expose `update_data` (@RyanGibb mirage/ocaml-dns#350)
* resolver: b root name server IP change (@hannesm mirage/ocaml-dns#348)
* secondary server [mirage]: avoid infinite loop in connect (avoids SYN floods)
  (@hannesm @reynir mirage/ocaml-dns#347)
* resolver, dns_zone: use consistently `Log` instead of `Logs` (@palainp mirage/ocaml-dns#342)
```
== ERROR while compiling conduit-mirage.6.2.2 ===============================#
context              2.2.0~beta3~dev | linux/x86_64 | ocaml-base-compiler.5.2.0 | file:///home/opam/opam-repository
path                 ~/.opam/5.2/.opam-switch/build/conduit-mirage.6.2.2
command              ~/.opam/opam-init/hooks/sandbox.sh build dune build -p conduit-mirage -j 39
exit-code            1
env-file             ~/.opam/log/conduit-mirage-7-c37021.env
output-file          ~/.opam/log/conduit-mirage-7-c37021.out
 # output ###
(cd _build/default && /home/opam/.opam/5.2/bin/ocamlopt.opt -w -40 -g -I src/conduit-mirage/.conduit_mirage.objs/byte -I src/conduit-mirage/.conduit_mirage.objs/native -I /home/opam/.opam/5.2/lib/angstrom -I /home/opam/.opam/5.2/lib/asn1-combinators -I /home/opam/.opam/5.2/lib/astring -I /home/opam/.opam/5.2/lib/base64 -I /home/opam/.opam/5.2/lib/bigstringaf -I /home/opam/.opam/5.2/lib/ca-certs-nss -I /home/opam/.opam/5.2/lib/conduit -I /home/opam/.opam/5.2/lib/conduit-lwt -I /home/opam/.opam/5.2/lib/cstruct -I /home/opam/.opam/5.2/lib/dns -I /home/opam/.opam/5.2/lib/dns-client -I /home/opam/.opam/5.2/lib/dns-client-mirage -I /home/opam/.opam/5.2/lib/dns/cache -I /home/opam/.opam/5.2/lib/domain-name -I /home/opam/.opam/5.2/lib/duration -I /home/opam/.opam/5.2/lib/eqaf -I /home/opam/.opam/5.2/lib/eqaf/bigstring -I /home/opam/.opam/5.2/lib/eqaf/cstruct -I /home/opam/.opam/5.2/lib/fmt -I /home/opam/.opam/5.2/lib/gmap -I /home/opam/.opam/5.2/lib/happy-eyeballs -I /home/opam/.opam/5.2/lib/happy-eyeballs-mirage -I /home/opam/.opam/5.2/lib/hkdf -I /home/opam/.opam/5.2/lib/io-page -I /home/opam/.opam/5.2/lib/ipaddr -I /home/opam/.opam/5.2/lib/ipaddr-sexp -I /home/opam/.opam/5.2/lib/logs -I /home/opam/.opam/5.2/lib/lru -I /home/opam/.opam/5.2/lib/lwt -I /home/opam/.opam/5.2/lib/macaddr -I /home/opam/.opam/5.2/lib/metrics -I /home/opam/.opam/5.2/lib/mirage-clock -I /home/opam/.opam/5.2/lib/mirage-crypto -I /home/opam/.opam/5.2/lib/mirage-crypto-ec -I /home/opam/.opam/5.2/lib/mirage-crypto-pk -I /home/opam/.opam/5.2/lib/mirage-crypto-rng -I /home/opam/.opam/5.2/lib/mirage-flow -I /home/opam/.opam/5.2/lib/mirage-flow-combinators -I /home/opam/.opam/5.2/lib/mirage-kv -I /home/opam/.opam/5.2/lib/mirage-random -I /home/opam/.opam/5.2/lib/mirage-time -I /home/opam/.opam/5.2/lib/optint -I /home/opam/.opam/5.2/lib/parsexp -I /home/opam/.opam/5.2/lib/pbkdf -I /home/opam/.opam/5.2/lib/ppx_sexp_conv/runtime-lib -I /home/opam/.opam/5.2/lib/psq -I /home/opam/.opam/5.2/lib/ptime -I /home/opam/.opam/5.2/lib/randomconv -I /home/opam/.opam/5.2/lib/seq -I /home/opam/.opam/5.2/lib/sexplib -I /home/opam/.opam/5.2/lib/sexplib0 -I /home/opam/.opam/5.2/lib/stringext -I /home/opam/.opam/5.2/lib/tcpip -I /home/opam/.opam/5.2/lib/tls -I /home/opam/.opam/5.2/lib/tls-mirage -I /home/opam/.opam/5.2/lib/uri -I /home/opam/.opam/5.2/lib/uri/services -I /home/opam/.opam/5.2/lib/vchan -I /home/opam/.opam/5.2/lib/x509 -I /home/opam/.opam/5.2/lib/xenstore -I /home/opam/.opam/5.2/lib/xenstore/client -I /home/opam/.opam/5.2/lib/zarith -intf-suffix .ml -no-alias-deps -o src/conduit-mirage/.conduit_mirage.objs/native/resolver_mirage.cmx -c -impl src/conduit-mirage/resolver_mirage.pp.ml)
File "src/conduit-mirage/resolver_mirage.ml", line 100, characters 4-21:
100 |     DNS.gethostbyname dns host >>= function
          ^^^^^^^^^^^^^^^^^
Error: The module DNS is a functor, it cannot have any components
(cd _build/default && /home/opam/.opam/5.2/bin/ocamlc.opt -w -40 -g -bin-annot -I src/conduit-mirage/.conduit_mirage.objs/byte -I /home/opam/.opam/5.2/lib/angstrom -I /home/opam/.opam/5.2/lib/asn1-combinators -I /home/opam/.opam/5.2/lib/astring -I /home/opam/.opam/5.2/lib/base64 -I /home/opam/.opam/5.2/lib/bigstringaf -I /home/opam/.opam/5.2/lib/ca-certs-nss -I /home/opam/.opam/5.2/lib/conduit -I /home/opam/.opam/5.2/lib/conduit-lwt -I /home/opam/.opam/5.2/lib/cstruct -I /home/opam/.opam/5.2/lib/dns -I /home/opam/.opam/5.2/lib/dns-client -I /home/opam/.opam/5.2/lib/dns-client-mirage -I /home/opam/.opam/5.2/lib/dns/cache -I /home/opam/.opam/5.2/lib/domain-name -I /home/opam/.opam/5.2/lib/duration -I /home/opam/.opam/5.2/lib/eqaf -I /home/opam/.opam/5.2/lib/eqaf/bigstring -I /home/opam/.opam/5.2/lib/eqaf/cstruct -I /home/opam/.opam/5.2/lib/fmt -I /home/opam/.opam/5.2/lib/gmap -I /home/opam/.opam/5.2/lib/happy-eyeballs -I /home/opam/.opam/5.2/lib/happy-eyeballs-mirage -I /home/opam/.opam/5.2/lib/hkdf -I /home/opam/.opam/5.2/lib/io-page -I /home/opam/.opam/5.2/lib/ipaddr -I /home/opam/.opam/5.2/lib/ipaddr-sexp -I /home/opam/.opam/5.2/lib/logs -I /home/opam/.opam/5.2/lib/lru -I /home/opam/.opam/5.2/lib/lwt -I /home/opam/.opam/5.2/lib/macaddr -I /home/opam/.opam/5.2/lib/metrics -I /home/opam/.opam/5.2/lib/mirage-clock -I /home/opam/.opam/5.2/lib/mirage-crypto -I /home/opam/.opam/5.2/lib/mirage-crypto-ec -I /home/opam/.opam/5.2/lib/mirage-crypto-pk -I /home/opam/.opam/5.2/lib/mirage-crypto-rng -I /home/opam/.opam/5.2/lib/mirage-flow -I /home/opam/.opam/5.2/lib/mirage-flow-combinators -I /home/opam/.opam/5.2/lib/mirage-kv -I /home/opam/.opam/5.2/lib/mirage-random -I /home/opam/.opam/5.2/lib/mirage-time -I /home/opam/.opam/5.2/lib/optint -I /home/opam/.opam/5.2/lib/parsexp -I /home/opam/.opam/5.2/lib/pbkdf -I /home/opam/.opam/5.2/lib/ppx_sexp_conv/runtime-lib -I /home/opam/.opam/5.2/lib/psq -I /home/opam/.opam/5.2/lib/ptime -I /home/opam/.opam/5.2/lib/randomconv -I /home/opam/.opam/5.2/lib/seq -I /home/opam/.opam/5.2/lib/sexplib -I /home/opam/.opam/5.2/lib/sexplib0 -I /home/opam/.opam/5.2/lib/stringext -I /home/opam/.opam/5.2/lib/tcpip -I /home/opam/.opam/5.2/lib/tls -I /home/opam/.opam/5.2/lib/tls-mirage -I /home/opam/.opam/5.2/lib/uri -I /home/opam/.opam/5.2/lib/uri/services -I /home/opam/.opam/5.2/lib/vchan -I /home/opam/.opam/5.2/lib/x509 -I /home/opam/.opam/5.2/lib/xenstore -I /home/opam/.opam/5.2/lib/xenstore/client -I /home/opam/.opam/5.2/lib/zarith -intf-suffix .ml -no-alias-deps -o src/conduit-mirage/.conduit_mirage.objs/byte/resolver_mirage.cmo -c -impl src/conduit-mirage/resolver_mirage.pp.ml)
File "src/conduit-mirage/resolver_mirage.ml", line 100, characters 4-21:
100 |     DNS.gethostbyname dns host >>= function
          ^^^^^^^^^^^^^^^^^
Error: The module DNS is a functor, it cannot have any components
```
```
== ERROR while compiling capnp-rpc-mirage.1.2.3 =============================#
context              2.2.0~beta3~dev | linux/x86_64 | ocaml-base-compiler.5.2.0 | file:///home/opam/opam-repository
path                 ~/.opam/5.2/.opam-switch/build/capnp-rpc-mirage.1.2.3
command              ~/.opam/opam-init/hooks/sandbox.sh build dune build -p capnp-rpc-mirage -j 255
exit-code            1
env-file             ~/.opam/log/capnp-rpc-mirage-7-71047e.env
output-file          ~/.opam/log/capnp-rpc-mirage-7-71047e.out
 # output ###
(cd _build/default && /home/opam/.opam/5.2/bin/ocamlc.opt -w -40 -g -bin-annot -I mirage/.capnp_rpc_mirage.objs/byte -I /home/opam/.opam/5.2/lib/angstrom -I /home/opam/.opam/5.2/lib/asetmap -I /home/opam/.opam/5.2/lib/asn1-combinators -I /home/opam/.opam/5.2/lib/astring -I /home/opam/.opam/5.2/lib/base64 -I /home/opam/.opam/5.2/lib/bigstringaf -I /home/opam/.opam/5.2/lib/bytes -I /home/opam/.opam/5.2/lib/ca-certs-nss -I /home/opam/.opam/5.2/lib/capnp -I /home/opam/.opam/5.2/lib/capnp-rpc -I /home/opam/.opam/5.2/lib/capnp-rpc-lwt -I /home/opam/.opam/5.2/lib/capnp-rpc-net -I /home/opam/.opam/5.2/lib/cstruct -I /home/opam/.opam/5.2/lib/dns -I /home/opam/.opam/5.2/lib/dns-client -I /home/opam/.opam/5.2/lib/dns-client-mirage -I /home/opam/.opam/5.2/lib/dns/cache -I /home/opam/.opam/5.2/lib/domain-name -I /home/opam/.opam/5.2/lib/duration -I /home/opam/.opam/5.2/lib/eqaf -I /home/opam/.opam/5.2/lib/eqaf/bigstring -I /home/opam/.opam/5.2/lib/eqaf/cstruct -I /home/opam/.opam/5.2/lib/fmt -I /home/opam/.opam/5.2/lib/gmap -I /home/opam/.opam/5.2/lib/happy-eyeballs -I /home/opam/.opam/5.2/lib/happy-eyeballs-mirage -I /home/opam/.opam/5.2/lib/hkdf -I /home/opam/.opam/5.2/lib/ipaddr -I /home/opam/.opam/5.2/lib/logs -I /home/opam/.opam/5.2/lib/lru -I /home/opam/.opam/5.2/lib/lwt -I /home/opam/.opam/5.2/lib/macaddr -I /home/opam/.opam/5.2/lib/metrics -I /home/opam/.opam/5.2/lib/mirage-clock -I /home/opam/.opam/5.2/lib/mirage-crypto -I /home/opam/.opam/5.2/lib/mirage-crypto-ec -I /home/opam/.opam/5.2/lib/mirage-crypto-pk -I /home/opam/.opam/5.2/lib/mirage-crypto-rng -I /home/opam/.opam/5.2/lib/mirage-flow -I /home/opam/.opam/5.2/lib/mirage-kv -I /home/opam/.opam/5.2/lib/mirage-random -I /home/opam/.opam/5.2/lib/mirage-time -I /home/opam/.opam/5.2/lib/ocplib-endian -I /home/opam/.opam/5.2/lib/optint -I /home/opam/.opam/5.2/lib/pbkdf -I /home/opam/.opam/5.2/lib/prometheus -I /home/opam/.opam/5.2/lib/psq -I /home/opam/.opam/5.2/lib/ptime -I /home/opam/.opam/5.2/lib/randomconv -I /home/opam/.opam/5.2/lib/re -I /home/opam/.opam/5.2/lib/res -I /home/opam/.opam/5.2/lib/result -I /home/opam/.opam/5.2/lib/seq -I /home/opam/.opam/5.2/lib/sexplib0 -I /home/opam/.opam/5.2/lib/stdint -I /home/opam/.opam/5.2/lib/stringext -I /home/opam/.opam/5.2/lib/tcpip -I /home/opam/.opam/5.2/lib/tls -I /home/opam/.opam/5.2/lib/tls-mirage -I /home/opam/.opam/5.2/lib/uri -I /home/opam/.opam/5.2/lib/x509 -I /home/opam/.opam/5.2/lib/zarith -no-alias-deps -open Capnp_rpc_mirage__ -o mirage/.capnp_rpc_mirage.objs/byte/capnp_rpc_mirage__Network.cmi -c -intf mirage/network.mli)
File "mirage/network.mli", line 22, characters 10-15:
22 |     dns : Dns.t;
               ^^^^^
Error: The module Dns is a functor, it cannot have any components
```
```
=== ERROR while compiling dkim-mirage.0.5.0 ==================================#
 context              2.2.0~beta3~dev | linux/x86_64 | ocaml-base-compiler.5.2.0 | file:///home/opam/opam-repository
 path                 ~/.opam/5.2/.opam-switch/build/dkim-mirage.0.5.0
 command              ~/.opam/opam-init/hooks/sandbox.sh build dune build -p dkim-mirage -j 255
 exit-code            1
 env-file             ~/.opam/log/dkim-mirage-7-df3170.env
 output-file          ~/.opam/log/dkim-mirage-7-df3170.out
 ## output ###
 (cd _build/default && /home/opam/.opam/5.2/bin/ocamlc.opt -w -40 -g -bin-annot -I mirage/.dkim_mirage.objs/byte -I /home/opam/.opam/5.2/lib/angstrom -I /home/opam/.opam/5.2/lib/asn1-combinators -I /home/opam/.opam/5.2/lib/astring -I /home/opam/.opam/5.2/lib/base64 -I /home/opam/.opam/5.2/lib/base64/rfc2045 -I /home/opam/.opam/5.2/lib/bigarray-overlap -I /home/opam/.opam/5.2/lib/bigstringaf -I /home/opam/.opam/5.2/lib/ca-certs-nss -I /home/opam/.opam/5.2/lib/coin -I /home/opam/.opam/5.2/lib/cstruct -I /home/opam/.opam/5.2/lib/digestif -I /home/opam/.opam/5.2/lib/dkim -I /home/opam/.opam/5.2/lib/dns -I /home/opam/.opam/5.2/lib/dns-client -I /home/opam/.opam/5.2/lib/dns-client-mirage -I /home/opam/.opam/5.2/lib/dns/cache -I /home/opam/.opam/5.2/lib/domain-name -I /home/opam/.opam/5.2/lib/duration -I /home/opam/.opam/5.2/lib/emile -I /home/opam/.opam/5.2/lib/eqaf -I /home/opam/.opam/5.2/lib/eqaf/bigstring -I /home/opam/.opam/5.2/lib/eqaf/cstruct -I /home/opam/.opam/5.2/lib/fmt -I /home/opam/.opam/5.2/lib/gmap -I /home/opam/.opam/5.2/lib/happy-eyeballs -I /home/opam/.opam/5.2/lib/happy-eyeballs-mirage -I /home/opam/.opam/5.2/lib/hkdf -I /home/opam/.opam/5.2/lib/hmap -I /home/opam/.opam/5.2/lib/ipaddr -I /home/opam/.opam/5.2/lib/ke -I /home/opam/.opam/5.2/lib/logs -I /home/opam/.opam/5.2/lib/lru -I /home/opam/.opam/5.2/lib/lwt -I /home/opam/.opam/5.2/lib/macaddr -I /home/opam/.opam/5.2/lib/metrics -I /home/opam/.opam/5.2/lib/mirage-clock -I /home/opam/.opam/5.2/lib/mirage-crypto -I /home/opam/.opam/5.2/lib/mirage-crypto-ec -I /home/opam/.opam/5.2/lib/mirage-crypto-pk -I /home/opam/.opam/5.2/lib/mirage-crypto-rng -I /home/opam/.opam/5.2/lib/mirage-flow -I /home/opam/.opam/5.2/lib/mirage-kv -I /home/opam/.opam/5.2/lib/mirage-random -I /home/opam/.opam/5.2/lib/mirage-time -I /home/opam/.opam/5.2/lib/mrmime -I /home/opam/.opam/5.2/lib/optint -I /home/opam/.opam/5.2/lib/pbkdf -I /home/opam/.opam/5.2/lib/pecu -I /home/opam/.opam/5.2/lib/prettym -I /home/opam/.opam/5.2/lib/psq -I /home/opam/.opam/5.2/lib/ptime -I /home/opam/.opam/5.2/lib/randomconv -I /home/opam/.opam/5.2/lib/rosetta -I /home/opam/.opam/5.2/lib/seq -I /home/opam/.opam/5.2/lib/sexplib0 -I /home/opam/.opam/5.2/lib/tcpip -I /home/opam/.opam/5.2/lib/tls -I /home/opam/.opam/5.2/lib/tls-mirage -I /home/opam/.opam/5.2/lib/unstrctrd -I /home/opam/.opam/5.2/lib/unstrctrd/parser -I /home/opam/.opam/5.2/lib/uutf -I /home/opam/.opam/5.2/lib/uuuu -I /home/opam/.opam/5.2/lib/x509 -I /home/opam/.opam/5.2/lib/yuscii -I /home/opam/.opam/5.2/lib/zarith -intf-suffix .ml -no-alias-deps -o mirage/.dkim_mirage.objs/byte/dkim_mirage.cmo -c -impl mirage/dkim_mirage.ml)
 File "mirage/dkim_mirage.ml", line 71, characters 12-54:
 71 |     include Dns_client_mirage.Make (R) (T) (M) (P) (S)
                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 Error: This module is not a structure; it has type
        "functor
          (H : sig
                 type t
                 type stack = S.t
                 type flow = S.TCP.flow
                 type getaddrinfo =
                     [ `A | `AAAA ] ->
                     [ `host ] Domain_name.t ->
                     (Ipaddr.Set.t, [ `Msg of string ]) result Lwt.t
                 val create :
                   ?happy_eyeballs:Happy_eyeballs.t ->
                   ?getaddrinfo:getaddrinfo ->
                   ?timer_interval:int64 -> stack -> t
                 val inject : t -> getaddrinfo -> unit
                 val connect_host :
                   t ->
                   ?aaaa_timeout:int64 ->
                   ?connect_delay:int64 ->
                   ?connect_timeout:int64 ->
                   ?resolve_timeout:int64 ->
                   ?resolve_retries:int ->
                   [ `host ] Domain_name.t ->
                   int list ->
                   ((Ipaddr.t * int) * flow, [> `Msg of string ]) result Lwt.t
                 val connect_ip :
                   t ->
                   ?aaaa_timeout:int64 ->
                   ?connect_delay:int64 ->
                   ?connect_timeout:int64 ->
                   (Ipaddr.t * int) list ->
                   ((Ipaddr.t * int) * flow, [> `Msg of string ]) result Lwt.t
                 val connect :
                   t ->
                   ?aaaa_timeout:int64 ->
                   ?connect_delay:int64 ->
                   ?connect_timeout:int64 ->
                   ?resolve_timeout:int64 ->
                   ?resolve_retries:int ->
                   string ->
                   int list ->
                   ((Ipaddr.t * int) * flow, [> `Msg of string ]) result Lwt.t
               end)
          ->
          sig
            type happy_eyeballs = H.t
            module Transport :
              sig
                type context =
                    Dns_client_mirage.Make(R)(T)(M)(P)(S)(H).Transport.context
                type 'a io = 'a Lwt.t
                type io_addr =
                    [ `Plaintext of Ipaddr.t * int
                    | `Tls of Tls.Config.client * Ipaddr.t * int ]
                type stack = S.t * H.t
                type t = Dns_client_mirage.Make(R)(T)(M)(P)(S)(H).Transport.t
                val create :
                  ?nameservers:Dns.proto * io_addr list ->
                  timeout:int64 -> stack -> t
                val nameservers : t -> Dns.proto * io_addr list
                val rng : int -> Cstruct.t
                val clock : unit -> int64
                val connect :
                  t -> (Dns.proto * context, [> `Msg of string ]) result io
                val send_recv :
                  context ->
                  Cstruct.t -> (Cstruct.t, [> `Msg of string ]) result io
                val close : context -> unit io
                val bind : 'a io -> ('a -> 'b io) -> 'b io
                val lift : 'a -> 'a io
                val happy_eyeballs : t -> happy_eyeballs
              end
            type t = Dns_client.Make(Transport).t
            val transport : t -> Transport.t
            val create :
              ?cache_size:int ->
              ?edns:[ `Auto | `Manual of Dns.Edns.t | `None ] ->
              ?nameservers:Dns.proto * Transport.io_addr list ->
              ?timeout:int64 -> Transport.stack -> t
            val nameservers : t -> Dns.proto * Transport.io_addr list
            val getaddrinfo :
              t ->
              'response Dns.Rr_map.key ->
              'a Domain_name.t ->
              ('response, [> `Msg of string ]) result Transport.io
            val gethostbyname :
              t ->
              [ `host ] Domain_name.t ->
              (Ipaddr.V4.t, [> `Msg of string ]) result Transport.io
            val gethostbyname6 :
              t ->
              [ `host ] Domain_name.t ->
              (Ipaddr.V6.t, [> `Msg of string ]) result Transport.io
            val get_resource_record :
              t ->
              'response Dns.Rr_map.key ->
              'a Domain_name.t ->
              ('response,
               [> `Msg of string
                | `No_data of [ `raw ] Domain_name.t * Dns.Soa.t
                | `No_domain of [ `raw ] Domain_name.t * Dns.Soa.t ])
              result Transport.io
            val get_raw_reply :
              t ->
              'response Dns.Rr_map.key ->
              'a Domain_name.t ->
              (Dns.Packet.reply, [> `Msg of string | `Partial ]) result
              Transport.io
            val nameserver_of_string :
              string ->
              (Dns.proto * Transport.io_addr, [> `Msg of string ]) result
            val connect :
              ?cache_size:int ->
              ?edns:[ `Auto | `Manual of Dns.Edns.t | `None ] ->
              ?nameservers:string list ->
              ?timeout:int64 -> Transport.stack -> t Lwt.t
          end"
 (cd _build/default && /home/opam/.opam/5.2/bin/ocamlopt.opt -w -40 -g -I mirage/.dkim_mirage.objs/byte -I mirage/.dkim_mirage.objs/native -I /home/opam/.opam/5.2/lib/angstrom -I /home/opam/.opam/5.2/lib/asn1-combinators -I /home/opam/.opam/5.2/lib/astring -I /home/opam/.opam/5.2/lib/base64 -I /home/opam/.opam/5.2/lib/base64/rfc2045 -I /home/opam/.opam/5.2/lib/bigarray-overlap -I /home/opam/.opam/5.2/lib/bigstringaf -I /home/opam/.opam/5.2/lib/ca-certs-nss -I /home/opam/.opam/5.2/lib/coin -I /home/opam/.opam/5.2/lib/cstruct -I /home/opam/.opam/5.2/lib/digestif -I /home/opam/.opam/5.2/lib/dkim -I /home/opam/.opam/5.2/lib/dns -I /home/opam/.opam/5.2/lib/dns-client -I /home/opam/.opam/5.2/lib/dns-client-mirage -I /home/opam/.opam/5.2/lib/dns/cache -I /home/opam/.opam/5.2/lib/domain-name -I /home/opam/.opam/5.2/lib/duration -I /home/opam/.opam/5.2/lib/emile -I /home/opam/.opam/5.2/lib/eqaf -I /home/opam/.opam/5.2/lib/eqaf/bigstring -I /home/opam/.opam/5.2/lib/eqaf/cstruct -I /home/opam/.opam/5.2/lib/fmt -I /home/opam/.opam/5.2/lib/gmap -I /home/opam/.opam/5.2/lib/happy-eyeballs -I /home/opam/.opam/5.2/lib/happy-eyeballs-mirage -I /home/opam/.opam/5.2/lib/hkdf -I /home/opam/.opam/5.2/lib/hmap -I /home/opam/.opam/5.2/lib/ipaddr -I /home/opam/.opam/5.2/lib/ke -I /home/opam/.opam/5.2/lib/logs -I /home/opam/.opam/5.2/lib/lru -I /home/opam/.opam/5.2/lib/lwt -I /home/opam/.opam/5.2/lib/macaddr -I /home/opam/.opam/5.2/lib/metrics -I /home/opam/.opam/5.2/lib/mirage-clock -I /home/opam/.opam/5.2/lib/mirage-crypto -I /home/opam/.opam/5.2/lib/mirage-crypto-ec -I /home/opam/.opam/5.2/lib/mirage-crypto-pk -I /home/opam/.opam/5.2/lib/mirage-crypto-rng -I /home/opam/.opam/5.2/lib/mirage-flow -I /home/opam/.opam/5.2/lib/mirage-kv -I /home/opam/.opam/5.2/lib/mirage-random -I /home/opam/.opam/5.2/lib/mirage-time -I /home/opam/.opam/5.2/lib/mrmime -I /home/opam/.opam/5.2/lib/optint -I /home/opam/.opam/5.2/lib/pbkdf -I /home/opam/.opam/5.2/lib/pecu -I /home/opam/.opam/5.2/lib/prettym -I /home/opam/.opam/5.2/lib/psq -I /home/opam/.opam/5.2/lib/ptime -I /home/opam/.opam/5.2/lib/randomconv -I /home/opam/.opam/5.2/lib/rosetta -I /home/opam/.opam/5.2/lib/seq -I /home/opam/.opam/5.2/lib/sexplib0 -I /home/opam/.opam/5.2/lib/tcpip -I /home/opam/.opam/5.2/lib/tls -I /home/opam/.opam/5.2/lib/tls-mirage -I /home/opam/.opam/5.2/lib/unstrctrd -I /home/opam/.opam/5.2/lib/unstrctrd/parser -I /home/opam/.opam/5.2/lib/uutf -I /home/opam/.opam/5.2/lib/uuuu -I /home/opam/.opam/5.2/lib/x509 -I /home/opam/.opam/5.2/lib/yuscii -I /home/opam/.opam/5.2/lib/zarith -intf-suffix .ml -no-alias-deps -o mirage/.dkim_mirage.objs/native/dkim_mirage.cmx -c -impl mirage/dkim_mirage.ml)
 File "mirage/dkim_mirage.ml", line 71, characters 12-54:
 71 |     include Dns_client_mirage.Make (R) (T) (M) (P) (S)
                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 Error: This module is not a structure; it has type
        "functor
          (H : sig
                 type t
                 type stack = S.t
                 type flow = S.TCP.flow
                 type getaddrinfo =
                     [ `A | `AAAA ] ->
                     [ `host ] Domain_name.t ->
                     (Ipaddr.Set.t, [ `Msg of string ]) result Lwt.t
                 val create :
                   ?happy_eyeballs:Happy_eyeballs.t ->
                   ?getaddrinfo:getaddrinfo ->
                   ?timer_interval:int64 -> stack -> t
                 val inject : t -> getaddrinfo -> unit
                 val connect_host :
                   t ->
                   ?aaaa_timeout:int64 ->
                   ?connect_delay:int64 ->
                   ?connect_timeout:int64 ->
                   ?resolve_timeout:int64 ->
                   ?resolve_retries:int ->
                   [ `host ] Domain_name.t ->
                   int list ->
                   ((Ipaddr.t * int) * flow, [> `Msg of string ]) result Lwt.t
                 val connect_ip :
                   t ->
                   ?aaaa_timeout:int64 ->
                   ?connect_delay:int64 ->
                   ?connect_timeout:int64 ->
                   (Ipaddr.t * int) list ->
                   ((Ipaddr.t * int) * flow, [> `Msg of string ]) result Lwt.t
                 val connect :
                   t ->
                   ?aaaa_timeout:int64 ->
                   ?connect_delay:int64 ->
                   ?connect_timeout:int64 ->
                   ?resolve_timeout:int64 ->
                   ?resolve_retries:int ->
                   string ->
                   int list ->
                   ((Ipaddr.t * int) * flow, [> `Msg of string ]) result Lwt.t
               end)
          ->
          sig
            type happy_eyeballs = H.t
            module Transport :
              sig
                type context =
                    Dns_client_mirage.Make(R)(T)(M)(P)(S)(H).Transport.context
                type 'a io = 'a Lwt.t
                type io_addr =
                    [ `Plaintext of Ipaddr.t * int
                    | `Tls of Tls.Config.client * Ipaddr.t * int ]
                type stack = S.t * H.t
                type t = Dns_client_mirage.Make(R)(T)(M)(P)(S)(H).Transport.t
                val create :
                  ?nameservers:Dns.proto * io_addr list ->
                  timeout:int64 -> stack -> t
                val nameservers : t -> Dns.proto * io_addr list
                val rng : int -> Cstruct.t
                val clock : unit -> int64
                val connect :
                  t -> (Dns.proto * context, [> `Msg of string ]) result io
                val send_recv :
                  context ->
                  Cstruct.t -> (Cstruct.t, [> `Msg of string ]) result io
                val close : context -> unit io
                val bind : 'a io -> ('a -> 'b io) -> 'b io
                val lift : 'a -> 'a io
                val happy_eyeballs : t -> happy_eyeballs
              end
            type t = Dns_client.Make(Transport).t
            val transport : t -> Transport.t
            val create :
              ?cache_size:int ->
              ?edns:[ `Auto | `Manual of Dns.Edns.t | `None ] ->
              ?nameservers:Dns.proto * Transport.io_addr list ->
              ?timeout:int64 -> Transport.stack -> t
            val nameservers : t -> Dns.proto * Transport.io_addr list
            val getaddrinfo :
              t ->
              'response Dns.Rr_map.key ->
              'a Domain_name.t ->
              ('response, [> `Msg of string ]) result Transport.io
            val gethostbyname :
              t ->
              [ `host ] Domain_name.t ->
              (Ipaddr.V4.t, [> `Msg of string ]) result Transport.io
            val gethostbyname6 :
              t ->
              [ `host ] Domain_name.t ->
              (Ipaddr.V6.t, [> `Msg of string ]) result Transport.io
            val get_resource_record :
              t ->
              'response Dns.Rr_map.key ->
              'a Domain_name.t ->
              ('response,
               [> `Msg of string
                | `No_data of [ `raw ] Domain_name.t * Dns.Soa.t
                | `No_domain of [ `raw ] Domain_name.t * Dns.Soa.t ])
              result Transport.io
            val get_raw_reply :
              t ->
              'response Dns.Rr_map.key ->
              'a Domain_name.t ->
              (Dns.Packet.reply, [> `Msg of string | `Partial ]) result
              Transport.io
            val nameserver_of_string :
              string ->
              (Dns.proto * Transport.io_addr, [> `Msg of string ]) result
            val connect :
              ?cache_size:int ->
              ?edns:[ `Auto | `Manual of Dns.Edns.t | `None ] ->
              ?nameservers:string list ->
              ?timeout:int64 -> Transport.stack -> t Lwt.t
          end"
```
@hannesm
Copy link
Member Author

hannesm commented May 30, 2024

CI looks fine -- there are some revdeps runs waiting to be finished, but these are only for packages where the upper bound was adjusted. so, good to merge.

@avsm avsm merged commit 5877290 into ocaml:master May 30, 2024
1 of 2 checks passed
@avsm
Copy link
Member

avsm commented May 30, 2024

All looks good. Thanks!

@hannesm hannesm deleted the release-dns-v8.0.0 branch May 30, 2024 14:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants