42 #ifndef _DWMDNSMESSAGEQUESTION_HH_ 43 #define _DWMDNSMESSAGEQUESTION_HH_ 66 static constexpr uint16_t k_typeNS = 2;
67 static constexpr uint16_t k_typeCNAME = 5;
68 static constexpr uint16_t k_typeSOA = 6;
69 static constexpr uint16_t k_typeMB = 7;
70 static constexpr uint16_t k_typeMG = 8;
71 static constexpr uint16_t k_typeMR = 9;
72 static constexpr uint16_t k_typePTR = 12;
73 static constexpr uint16_t k_typeHINFO = 13;
74 static constexpr uint16_t k_typeMINFO = 14;
75 static constexpr uint16_t k_typeMX = 15;
76 static constexpr uint16_t k_typeTXT = 16;
77 static constexpr uint16_t k_typeRP = 17;
78 static constexpr uint16_t k_typeKEY = 25;
79 static constexpr uint16_t k_typeAAAA = 28;
80 static constexpr uint16_t k_typeLOC = 29;
81 static constexpr uint16_t k_typeSRV = 33;
82 static constexpr uint16_t k_typeCERT = 37;
83 static constexpr uint16_t k_typeDS = 43;
84 static constexpr uint16_t k_typeSSHFP = 44;
85 static constexpr uint16_t k_typeRRSIG = 46;
86 static constexpr uint16_t k_typeNSEC = 47;
87 static constexpr uint16_t k_typeDNSKEY = 48;
88 static constexpr uint16_t k_typeDHCID = 49;
89 static constexpr uint16_t k_typeNSEC3 = 50;
90 static constexpr uint16_t k_typeNSEC3PARAM = 51;
91 static constexpr uint16_t k_typeTLSA = 52;
92 static constexpr uint16_t k_typeSMIMEA = 53;
93 static constexpr uint16_t k_typeCDS = 59;
94 static constexpr uint16_t k_typeCDNSKEY = 60;
95 static constexpr uint16_t k_typeOPENPGPKEY = 61;
96 static constexpr uint16_t k_typeURI = 256;
97 static constexpr uint16_t k_typeCAA = 257;
103 static constexpr uint16_t k_classCH = 3;
104 static constexpr uint16_t k_classHS = 4;
105 static constexpr uint16_t k_classANY = 255;
106 static constexpr uint16_t k_classUNKNOWN = 0xFFFF;
128 const std::string &
QName()
const;
133 const std::string &
QName(
const std::string & qname);
138 uint16_t
QType()
const;
143 uint16_t
QType(uint16_t qtype);
153 uint16_t
QClass(uint16_t qclass);
162 uint8_t *
Encode(uint8_t *pkt, uint8_t *ptr, uint16_t pktlen,
172 const uint8_t *
Decode(
const uint8_t *pkt,
const uint8_t *ptr,
185 #endif // _DWMDNSMESSAGEQUESTION_HH_ Dwm::Dns::LabelPositions class definition.
bool operator==(const MessageQuestion &question) const
Equal-to operator, mostly useful for unit testing.
static constexpr uint16_t k_typeA
Query types.
Definition: DwmDnsMessageQuestion.hh:65
MessageQuestion()
Constructs an empty question.
uint8_t * Encode(uint8_t *pkt, uint8_t *ptr, uint16_t pktlen, LabelPositions &lps) const
Encodes the question into buffer @ pkt of length pktlen, starting at ptr.
Encapsulates a DNS message question.
Definition: DwmDnsMessageQuestion.hh:59
Definition: DwmDnsEtcHosts.hh:60
const uint8_t * Decode(const uint8_t *pkt, const uint8_t *ptr, uint16_t pktlen)
Decodes the question from buffer pkt of length pktlen, starting at ptr.
static constexpr uint16_t k_classIN
Query classes.
Definition: DwmDnsMessageQuestion.hh:102
A helper class used when performing label sequence compression.
Definition: DwmDnsLabelPositions.hh:57
uint16_t QType() const
Returns the QTYPE of the question.
uint16_t QClass() const
Returns the QCLASS of the question.
const std::string & QName() const
Returns the QNAME from the question.