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

Commits on May 29, 2024

  1. [new release] dns (12 packages) (8.0.0)

    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)
    hannesm committed May 29, 2024
    Configuration menu
    Copy the full SHA
    6031ae0 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    d654042 View commit details
    Browse the repository at this point in the history
  3. conduit-mirage is not compatible with dns-client-mirage 8.0.0

    ```
    == 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
    ```
    hannesm committed May 29, 2024
    Configuration menu
    Copy the full SHA
    ac735af View commit details
    Browse the repository at this point in the history
  4. capnp-rpc-mirage: restrict to dns-client-mirage < 8.0.0

    ```
    == 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
    ```
    hannesm committed May 29, 2024
    Configuration menu
    Copy the full SHA
    c6b8a3a View commit details
    Browse the repository at this point in the history
  5. dkim-mirage: restrict to dns-client-mirage < 8.0.0

    ```
    === 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 committed May 29, 2024
    Configuration menu
    Copy the full SHA
    23874db View commit details
    Browse the repository at this point in the history