1 #ifndef PACKETPP_DNS_LAYER 2 #define PACKETPP_DNS_LAYER 28 #if (BYTE_ORDER == LITTLE_ENDIAN) 50 #elif (BYTE_ORDER == BIG_ENDIAN) 145 DnsQuery* getQuery(
const std::string& name,
bool exactMatch)
const;
162 size_t getQueryCount()
const;
188 bool removeQuery(
const std::string& queryNameToRemove,
bool exactMatch);
195 bool removeQuery(
DnsQuery* queryToRemove);
204 DnsResource* getAnswer(
const std::string& name,
bool exactMatch)
const;
221 size_t getAnswerCount()
const;
251 bool removeAnswer(
const std::string& answerNameToRemove,
bool exactMatch);
268 DnsResource* getAuthority(
const std::string& name,
bool exactMatch)
const;
285 size_t getAuthorityCount()
const;
315 bool removeAuthority(
const std::string& authorityNameToRemove,
bool exactMatch);
322 bool removeAuthority(
DnsResource* authorityToRemove);
333 DnsResource* getAdditionalRecord(
const std::string& name,
bool exactMatch)
const;
351 size_t getAdditionalRecordCount()
const;
397 bool removeAdditionalRecord(
const std::string& additionalRecordNameToRemove,
bool exactMatch);
404 bool removeAdditionalRecord(
DnsResource* additionalRecordToRemove);
424 std::string toString()
const;
432 static inline bool isDnsPort(uint16_t port);
444 using Layer::extendLayer;
445 bool extendLayer(
int offsetInLayer,
size_t numOfBytesToExtend,
IDnsResource* resource);
447 using Layer::shortenLayer;
448 bool shortenLayer(
int offsetInLayer,
size_t numOfBytesToShorten,
IDnsResource* resource);
450 IDnsResource* getResourceByName(
IDnsResource* startFrom,
size_t resourceCount,
const std::string& name,
bool exactMatch)
const;
452 void parseResources();
The main namespace for the PcapPlusPlus lib.
OsiModelLayer
Definition: ProtocolType.h:238
uint16_t authoritativeAnswer
Definition: DnsLayer.h:31
uint16_t opcode
Definition: DnsLayer.h:31
uint16_t numberOfAdditional
Definition: DnsLayer.h:80
OsiModelLayer getOsiModelLayer() const
Definition: DnsLayer.h:426
Definition: ProtocolType.h:253
void computeCalculateFields()
Definition: DnsLayer.h:422
uint16_t numberOfAuthority
Definition: DnsLayer.h:78
DnsClass
Definition: DnsLayerEnums.h:127
Definition: DnsResourceData.h:40
uint16_t responseCode
Definition: DnsLayer.h:31
uint16_t queryOrResponse
Definition: DnsLayer.h:31
uint16_t truncation
Definition: DnsLayer.h:31
DnsType
Definition: DnsLayerEnums.h:15
uint16_t checkingDisabled
Definition: DnsLayer.h:31
Definition: DnsLayer.h:97
uint16_t numberOfAnswers
Definition: DnsLayer.h:76
size_t getHeaderLen() const
Definition: DnsLayer.h:417
uint16_t recursionDesired
Definition: DnsLayer.h:31
DnsResourceType
Definition: DnsLayerEnums.h:145
void parseNextLayer()
Definition: DnsLayer.h:411
Definition: DnsLayer.h:24
uint16_t transactionID
Definition: DnsLayer.h:27
dnshdr * getDnsHeader() const
Definition: DnsLayer.h:136
uint16_t numberOfQuestions
Definition: DnsLayer.h:74
uint16_t authenticData
Definition: DnsLayer.h:31
Definition: DnsResource.h:150
Definition: DnsResource.h:30
Definition: DnsResource.h:128
uint16_t zero
Definition: DnsLayer.h:31
static bool isDnsPort(uint16_t port)
Definition: DnsLayer.h:464
uint16_t recursionAvailable
Definition: DnsLayer.h:31