31 size_t decodeName(
const char* encodedName,
char* result,
IDnsResource* dnsResource)
const;
32 void encodeName(
const std::string& decodedName,
char* result,
size_t& resultLen,
42 template <
class IDnsResourceDataType>
bool isTypeOf()
const
44 return dynamic_cast<const IDnsResourceDataType*
>(
this) !=
nullptr;
51 template <
class IDnsResourceDataType> IDnsResourceDataType*
castAs()
53 return dynamic_cast<IDnsResourceDataType*
>(
this);
81 template <
class IDnsResourceDataType>
bool isTypeOf()
const
83 return get()->isTypeOf<IDnsResourceDataType>();
89 template <
class IDnsResourceDataType> IDnsResourceDataType*
castAs()
91 return get()->castAs<IDnsResourceDataType>();
125 return m_Data == other.m_Data;
165 return m_Data == other.m_Data;
211 return m_Data == other.m_Data;
277 void setMxData(uint16_t preference, std::string mailExchange);
317 if (m_Data !=
nullptr)
Definition: DnsResourceData.h:71
IDnsResourceDataType * castAs()
Definition: DnsResourceData.h:89
DnsResourceDataPtr(IDnsResourceData *ptr)
Definition: DnsResourceData.h:75
bool isTypeOf() const
Definition: DnsResourceData.h:81
Definition: DnsResourceData.h:295
bool operator==(const GenericDnsResourceData &other) const
GenericDnsResourceData(const std::string &dataAsHexString)
bool toByteArr(uint8_t *arr, size_t &arrLength, IDnsResource *dnsResource) const override
std::string toString() const override
GenericDnsResourceData(const uint8_t *dataPtr, size_t dataLen)
GenericDnsResourceData(const GenericDnsResourceData &other)
Definition: DnsResourceData.h:24
virtual bool toByteArr(uint8_t *arr, size_t &arrLength, IDnsResource *dnsResource) const =0
IDnsResourceDataType * castAs()
Definition: DnsResourceData.h:51
bool isTypeOf() const
Definition: DnsResourceData.h:42
virtual std::string toString() const =0
virtual ~IDnsResourceData()=default
A virtual d'tor, does nothing.
Definition: DnsResource.h:26
Definition: IpAddress.h:28
std::string toString() const
Definition: DnsResourceData.h:140
bool toByteArr(uint8_t *arr, size_t &arrLength, IDnsResource *dnsResource) const override
IPv4DnsResourceData(const std::string &addrAsString)
Definition: DnsResourceData.h:157
bool operator==(const IPv4DnsResourceData &other) const
Definition: DnsResourceData.h:163
IPv4DnsResourceData(const IPv4Address &addr)
Definition: DnsResourceData.h:152
IPv4DnsResourceData(const uint8_t *dataPtr, size_t dataLen)
std::string toString() const override
Definition: DnsResourceData.h:176
IPv4Address getIpAddress() const
Definition: DnsResourceData.h:169
Definition: IpAddress.h:156
std::string toString() const
Definition: DnsResourceData.h:186
IPv6DnsResourceData(const IPv6Address &addr)
Definition: DnsResourceData.h:198
std::string toString() const override
Definition: DnsResourceData.h:222
bool operator==(const IPv6DnsResourceData &other) const
Definition: DnsResourceData.h:209
IPv6DnsResourceData(const uint8_t *dataPtr, size_t dataLen)
bool toByteArr(uint8_t *arr, size_t &arrLength, IDnsResource *dnsResource) const override
IPv6Address getIpAddress() const
Definition: DnsResourceData.h:215
IPv6DnsResourceData(const std::string &addrAsString)
Definition: DnsResourceData.h:203
Definition: DnsResourceData.h:232
std::string toString() const override
MxDnsResourceData(uint8_t *dataPtr, size_t dataLen, IDnsResource *dnsResource)
bool operator==(const MxDnsResourceData &other) const
bool toByteArr(uint8_t *arr, size_t &arrLength, IDnsResource *dnsResource) const override
MxData getMxData() const
Definition: DnsResourceData.h:269
MxDnsResourceData(const uint16_t &preference, const std::string &mailExchange)
void setMxData(uint16_t preference, std::string mailExchange)
Definition: DnsResourceData.h:99
std::string toString() const override
Definition: DnsResourceData.h:130
bool toByteArr(uint8_t *arr, size_t &arrLength, IDnsResource *dnsResource) const override
StringDnsResourceData(const std::string &data)
Definition: DnsResourceData.h:113
bool operator==(const StringDnsResourceData &other) const
Definition: DnsResourceData.h:123
The main namespace for the PcapPlusPlus lib.
A struct that represents mail exchange (MX) data.
Definition: DnsResourceData.h:236
std::string mailExchange
Mail exchange hostname.
Definition: DnsResourceData.h:240
uint16_t preference
Preference value.
Definition: DnsResourceData.h:238