dns
DNS client and server implementation in pure OCaml
1024" x-on:close-sidebar="sidebar=window.innerWidth > 1024 && true">
Legend:
Library
Module
Module type
Parameter
Class
Class type
Library
Module
Module type
Parameter
Class
Class type
type answer = {
rcode : Packet.rcode; |
aa : bool; |
answer : Packet.rr list; |
authority : Packet.rr list; |
additional : Packet.rr list; |
}
Partially-marshalled query response; that is, it has been uncompacted from the compact Trie
representation, but not yet rendered into a
Cstruct
.buf.
type flush = Name.t -> Packet.rdata -> bool
response_of_answer query answer
is the Packet.t
constructed from the answer
to the query
answer_of_response response
is the answer
corresponding to the upstream response
for proxied or forwarded response.
val answer :
?dnssec:bool ->
?mdns:bool ->
?filter:filter ->
?flush:flush ->
Name.t ->
Packet.q_type ->
Trie.dnstrie ->
answer
Answer a query about Domain_name
, given a query type q_type
and a Trie
of DNS data.
val answer_multiple :
?dnssec:bool ->
?mdns:bool ->
?filter:filter ->
?flush:flush ->
Packet.question list ->
Trie.dnstrie ->
answer
Answer one or more questions
given a Trie
of DNS data.
val create :
?dnssec:bool ->
id:int ->
Packet.q_class ->
Packet.q_type ->
Name.t ->
Packet.t
create ~id q_class q_type q_name
creates a query for q_name
with the supplied id
, q_class
, and q_type
.