{-| Module : Net.DNSBase.Message Description : The DNS message container type and wire-form encoders Copyright : (c) Viktor Dukhovni, 2026 License : BSD-3-Clause Maintainer : ietf-dane@dukhovni.org Stability : unstable A 'DNSMessage' is the full DNS-protocol packet ([RFC 1035 section 4.1](https://datatracker.ietf.org/doc/html/rfc1035#section-4.1)): a 16-bit query identifier, the flag word, and four sections (question, answer, authority, additional) carrying the associated 'Net.DNSBase.RR.RR' lists. The lookup functions return either a whole 'DNSMessage' (via 'Net.DNSBase.Lookup.lookupRaw' / 'Net.DNSBase.Lookup.lookupRawCtl') or just the filtered answer 'Net.DNSBase.RR.RR' list (via 'Net.DNSBase.Lookup.lookupAnswers' and the per-RR-type lookups). 'putMessage' and 'putRequest' are the wire-format encoders. Applications building responses use 'putMessage' directly; 'putRequest' is the stub-resolver path used by "Net.DNSBase.Internal.Transport". -} module Net.DNSBase.Message ( -- * DNS Message data type DNSMessage(..) , QueryID , putMessage , putRequest ) where import Net.DNSBase.Internal.Message