Legend:
Page
Library
Module
Module type
Parameter
Class
Class type
Source
Page
Library
Module
Module type
Parameter
Class
Class type
Source
Dns.PacketDNS packet manipulation using the Cstruct library. Something of a catch-all for the time being.
val compare_digest_alg : digest_alg -> digest_alg -> intval digest_alg_to_string : digest_alg -> stringval string_to_digest_alg : string -> digest_alg optionval digest_alg_to_int : digest_alg -> intval int_to_digest_alg : int -> digest_alg optionRepresent a DNSSEC algorithm, with the usual conversion functions.
val compare_dnssec_alg : dnssec_alg -> dnssec_alg -> intval dnssec_alg_to_string : dnssec_alg -> stringval string_to_dnssec_alg : string -> dnssec_alg optionval int_to_dnssec_alg : int -> dnssec_alg optionval dnssec_alg_to_int : dnssec_alg -> inttype q_type = | Q_A| Q_NS| Q_MD| Q_MF| Q_CNAME| Q_SOA| Q_MB| Q_MG| Q_MR| Q_NULL| Q_WKS| Q_PTR| Q_HINFO| Q_MINFO| Q_MX| Q_TXT| Q_RP| Q_AFSDB| Q_X25| Q_ISDN| Q_RT| Q_NSAP| Q_NSAPPTR| Q_SIG| Q_KEY| Q_PX| Q_GPOS| Q_AAAA| Q_LOC| Q_NXT| Q_EID| Q_NIMLOC| Q_SRV| Q_ATMA| Q_NAPTR| Q_KM| Q_CERT| Q_A6| Q_DNAME| Q_SINK| Q_OPT| Q_APL| Q_DS| Q_SSHFP| Q_IPSECKEY| Q_RRSIG| Q_NSEC| Q_DNSKEY| Q_NSEC3| Q_NSEC3PARAM| Q_SPF| Q_UINFO| Q_UID| Q_GID| Q_UNSPEC| Q_AXFR| Q_MAILB| Q_MAILA| Q_ANY_TYP| Q_TA| Q_DLV| Q_UNKNOWN of intRepresent the rr type, with the usual conversion functions.
val q_type_to_int : q_type -> inttype rr_type = | RR_UNUSED| RR_A| RR_NS| RR_MD| RR_MF| RR_CNAME| RR_SOA| RR_MB| RR_MG| RR_MR| RR_NULL| RR_WKS| RR_PTR| RR_HINFO| RR_MINFO| RR_MX| RR_TXT| RR_RP| RR_AFSDB| RR_X25| RR_ISDN| RR_RT| RR_NSAP| RR_NSAPPTR| RR_SIG| RR_KEY| RR_PX| RR_GPOS| RR_AAAA| RR_LOC| RR_NXT| RR_EID| RR_NIMLOC| RR_SRV| RR_ATMA| RR_NAPTR| RR_KM| RR_CERT| RR_A6| RR_DNAME| RR_SINK| RR_OPT| RR_APL| RR_DS| RR_SSHFP| RR_IPSECKEY| RR_RRSIG| RR_NSEC| RR_DNSKEY| RR_NSEC3| RR_NSEC3PARAM| RR_SPF| RR_UINFO| RR_UID| RR_GID| RR_UNSPECval string_to_rr_type : string -> rr_type optionval rr_type_to_string : rr_type -> stringval int_to_rr_type : int -> rr_type optionval rr_type_to_int : rr_type -> intRepresent RDATA elements; a variant type to avoid collision with the compact Trie representation from RR.
type rdata = | A of Ipaddr.V4.t| AAAA of Ipaddr.V6.t| AFSDB of Cstruct.uint16 * Name.t| CNAME of Name.t| DNSKEY of Cstruct.uint16 * dnssec_alg * string| DS of Cstruct.uint16 * dnssec_alg * digest_alg * string| HINFO of string * string| IPSECKEY of Cstruct.byte * gateway_tc * ipseckey_alg * gateway * string| ISDN of string * string option| MB of Name.t| MD of Name.t| MF of Name.t| MG of Name.t| MINFO of Name.t * Name.t| MR of Name.t| MX of Cstruct.uint16 * Name.t| NS of Name.t| NSEC of Name.t * type_bit_maps| NSEC3 of hash_alg
* Cstruct.byte
* Cstruct.uint16
* Cstruct.byte
* string
* Cstruct.byte
* string
* type_bit_maps| NSEC3PARAM of hash_alg * Cstruct.byte * Cstruct.uint16 * Cstruct.byte * string| PTR of Name.t| RP of Name.t * Name.t| RRSIG of rr_type
* dnssec_alg
* Cstruct.byte
* int32
* int32
* int32
* Cstruct.uint16
* Name.t
* string| SIG of dnssec_alg * int32 * int32 * Cstruct.uint16 * Name.t * string| RT of Cstruct.uint16 * Name.t| SOA of Name.t * Name.t * int32 * int32 * int32 * int32 * int32| SRV of Cstruct.uint16 * Cstruct.uint16 * Cstruct.uint16 * Name.t| SSHFP of pubkey_alg * fp_type * string| TXT of string list| UNKNOWN of int * string| WKS of Ipaddr.V4.t * Cstruct.byte * string| X25 of string| EDNS0 of int * int * bool * (int * string) listval rdata_to_string : rdata -> stringval marshal_rdata :
int Name.Map.t ->
?compress:bool ->
int ->
Cstruct.t ->
rdata ->
rr_type * int Name.Map.t * intMarshal the RR data into the DNS binary format. Raises Not_implemented if the RR type is known but the logic is not implemented in the library yet.
val parse_rdata :
(int, Name.label) Hashtbl.t ->
int ->
rr_type ->
int ->
int32 ->
Cstruct.t ->
rdataParse an RDATA element from a packet, given the set of already encountered names, a starting index, and the type of the RDATA. Raises Not_implemented if the RR type is not recognized.
The class of a rr, and usual conversion functions.
val rr_class_to_string : rr_class -> stringA resource record, with usual conversion and parsing functions.
val rr_to_string : rr -> stringval marshal_rr :
?compress:bool ->
(int Name.Map.t * int * Cstruct.t) ->
rr ->
int Name.Map.t * int * Cstruct.tval parse_rr :
(int, Name.label) Hashtbl.t ->
int ->
Cstruct.t ->
rr * (int * Cstruct.t)val q_type_to_string : q_type -> stringA question type, with the usual conversion functions.
val string_to_q_type : string -> q_type optionA question class, with the usual conversion functions.
val q_class_to_string : q_class -> stringval string_to_q_class : string -> q_class optionFor normal DNS, only Q_Normal is valid. For mDNS, Q_Normal (called QM in RFC 6762) requests a multicast response or Q_mDNS_Unicast (called QU in RFC 6762) requests a unicast response.
val q_unicast_to_string : q_unicast -> stringA question, with the usual conversion functions. Use make_question if you want to take advantage of default values.
A convenience function to create a question record with default values for q_class (Q_IN) and q_unicast (Q_Normal).
A convenience function to create a question record with default values for q_class (Q_IN) and q_unicast (Q_Normal).
val question_to_string : question -> stringval parse_question :
(int, Name.label) Hashtbl.t ->
int ->
Cstruct.t ->
question * (int * Cstruct.t)The qr field from the DNS header detail.
A DNS opcode, with the usual conversion functions.
val opcode_to_string : opcode -> stringval rcode_to_string : rcode -> stringThe detail field from the DNS header, with the usual conversion functions.
val to_string : t -> string