Dns.EdnsExtensions to DNS
An extension record (EDNS) is extendable, includes a version number, payload size restrictions, TCP keepalive timers, etc. This is only used in transaction, and not persisted to a store. It is treat specially in decode and encode.
type extension = | Nsid of string| Cookie of string| Tcp_keepalive of int option| Padding of int| Extended_error of Extended_error.t| Extension of int * stringThe type of supported extensions.
*)type t = private {extended_rcode : int;version : int;dnssec_ok : bool;payload_size : int;extensions : extension list;}The type of an EDNS record.
val create :
?extended_error:Extended_error.t ->
?extended_rcode:int ->
?version:int ->
?dnssec_ok:bool ->
?payload_size:int ->
?extensions:extension list ->
unit ->
tcreate ~extended_erro ~extended_rcode ~version ~dnssec_ok ~payload_size ~extensions () constructs an EDNS record with the optionally provided data. The extended_rcode defaults to 0, version defaults to 0, dnssec_ok to false, payload_size to the minimum payload size (512 byte), extensions to the empty list.
reply edns either constructs an EDNS record and returns a maximum payload size, or None (if no EDNS is provided).
compare a b compares the EDNS record a with b by comparing individual fields in-order. The extension list must be exactly in the same order.
val pp : t Fmt.tpp ppf t pretty-prints the EDNS record t on ppf.
val allocate_and_encode : t -> stringallocate_and_encode t allocates a buffer and encodes t into that buffer.