33 size_t decodeName(
const char* encodedName,
char* result,
IDnsResource* dnsResource)
const;
34 void encodeName(
const std::string& decodedName,
char* result,
size_t& resultLen,
44 template <
class IDnsResourceDataType>
bool isTypeOf()
const
46 return dynamic_cast<const IDnsResourceDataType*
>(
this) !=
nullptr;
53 template <
class IDnsResourceDataType> IDnsResourceDataType*
castAs()
55 return dynamic_cast<IDnsResourceDataType*
>(
this);
92 template <
class IDnsResourceDataType>
bool isTypeOf()
const
94 return get()->isTypeOf<IDnsResourceDataType>();
100 template <
class IDnsResourceDataType> IDnsResourceDataType*
castAs()
102 return get()->castAs<IDnsResourceDataType>();
136 return m_Data == other.m_Data;
176 return m_Data == other.m_Data;
222 return m_Data == other.m_Data;
249 uint16_t preference = 0;
288 void setMxData(uint16_t preference, std::string mailExchange);
328 if (m_Data !=
nullptr)
Definition: DnsResourceData.h:82
IDnsResourceDataType * castAs()
Definition: DnsResourceData.h:100
DnsResourceDataPtr(IDnsResourceData *ptr)
Definition: DnsResourceData.h:86
bool isTypeOf() const
Definition: DnsResourceData.h:92
Definition: DnsResourceData.h:306
bool operator==(const GenericDnsResourceData &other) const
GenericDnsResourceData(const std::string &dataAsHexString)
std::string toString() const override
std::vector< uint8_t > toBytes(IDnsResource *dnsResource) const override
GenericDnsResourceData(const uint8_t *dataPtr, size_t dataLen)
GenericDnsResourceData(const GenericDnsResourceData &other)
Definition: DnsResourceData.h:26
virtual std::vector< uint8_t > toBytes(IDnsResource *dnsResource) const =0
bool toByteArr(uint8_t *arr, size_t &arrLength, IDnsResource *dnsResource) const
IDnsResourceDataType * castAs()
Definition: DnsResourceData.h:53
bool isTypeOf() const
Definition: DnsResourceData.h:44
virtual std::string toString() const =0
virtual ~IDnsResourceData()=default
A virtual d'tor, does nothing.
Definition: DnsResource.h:26
Definition: IpAddress.h:30
std::string toString() const
Definition: DnsResourceData.h:151
IPv4DnsResourceData(const std::string &addrAsString)
Definition: DnsResourceData.h:168
bool operator==(const IPv4DnsResourceData &other) const
Definition: DnsResourceData.h:174
IPv4DnsResourceData(const IPv4Address &addr)
Definition: DnsResourceData.h:163
std::vector< uint8_t > toBytes(IDnsResource *dnsResource) const override
IPv4DnsResourceData(const uint8_t *dataPtr, size_t dataLen)
std::string toString() const override
Definition: DnsResourceData.h:187
IPv4Address getIpAddress() const
Definition: DnsResourceData.h:180
Definition: IpAddress.h:165
std::string toString() const
Definition: DnsResourceData.h:197
IPv6DnsResourceData(const IPv6Address &addr)
Definition: DnsResourceData.h:209
std::vector< uint8_t > toBytes(IDnsResource *dnsResource) const override
std::string toString() const override
Definition: DnsResourceData.h:233
bool operator==(const IPv6DnsResourceData &other) const
Definition: DnsResourceData.h:220
IPv6DnsResourceData(const uint8_t *dataPtr, size_t dataLen)
IPv6Address getIpAddress() const
Definition: DnsResourceData.h:226
IPv6DnsResourceData(const std::string &addrAsString)
Definition: DnsResourceData.h:214
Definition: DnsResourceData.h:243
std::string toString() const override
MxDnsResourceData(uint16_t preference, const std::string &mailExchange)
std::vector< uint8_t > toBytes(IDnsResource *dnsResource) const override
MxDnsResourceData(uint8_t *dataPtr, size_t dataLen, IDnsResource *dnsResource)
bool operator==(const MxDnsResourceData &other) const
MxData getMxData() const
Definition: DnsResourceData.h:280
void setMxData(uint16_t preference, std::string mailExchange)
Definition: DnsResourceData.h:110
std::string toString() const override
Definition: DnsResourceData.h:141
std::vector< uint8_t > toBytes(IDnsResource *dnsResource) const override
StringDnsResourceData(const std::string &data)
Definition: DnsResourceData.h:124
bool operator==(const StringDnsResourceData &other) const
Definition: DnsResourceData.h:134
The main namespace for the PcapPlusPlus lib.
Definition: AssertionUtils.h:19
@ PCPP_DEPRECATED
Deprecated typo, use OsiModelSessionLayer instead.
Definition: ProtocolType.h:437
A struct that represents mail exchange (MX) data.
Definition: DnsResourceData.h:247
std::string mailExchange
Mail exchange hostname.
Definition: DnsResourceData.h:251