|
| enum | QRType { QUERY = 0
, RESPONSE = 1
} |
| enum | QueryType {
A = 1
, NS
, MD
, MF
,
CNAME
, SOA
, MB
, MG
,
MR
, NULL_R
, WKS
, PTR
,
HINFO
, MINFO
, MX
, TXT
,
RP
, AFSDB
, X25
, ISDN
,
RT
, NSAP
, NSAP_PTR
, SIG
,
KEY
, PX
, GPOS
, AAAA
,
LOC
, NXT
, EID
, NIMLOC
,
SRV
, ATMA
, NAPTR
, KX
,
CERTIFICATE
, A6
, DNAM
, SINK
,
OPT
, APL
, DS
, SSHFP
,
IPSECKEY
, RRSIG
, NSEC
, DNSKEY
,
DHCID
, NSEC3
, NSEC3PARAM
, CERT = CERTIFICATE
} |
| | Query types enum.
|
| enum | QueryClass { INTERNET = 1
, CHAOS = 3
, HESIOD = 4
, ANY = 255
} |
|
typedef std::vector< query > | queries_type |
|
typedef std::vector< resource > | resources_type |
|
typedef IPv4Address | address_type |
|
typedef IPv6Address | address_v6_type |
| enum | endian_type { BE
, LE
} |
| enum | PDUType {
RAW
, ETHERNET_II
, IEEE802_3
, DOT3 = IEEE802_3
,
RADIOTAP
, DOT11
, DOT11_ACK
, DOT11_ASSOC_REQ
,
DOT11_ASSOC_RESP
, DOT11_AUTH
, DOT11_BEACON
, DOT11_BLOCK_ACK
,
DOT11_BLOCK_ACK_REQ
, DOT11_CF_END
, DOT11_DATA
, DOT11_CONTROL
,
DOT11_DEAUTH
, DOT11_DIASSOC
, DOT11_END_CF_ACK
, DOT11_MANAGEMENT
,
DOT11_PROBE_REQ
, DOT11_PROBE_RESP
, DOT11_PS_POLL
, DOT11_REASSOC_REQ
,
DOT11_REASSOC_RESP
, DOT11_RTS
, DOT11_QOS_DATA
, LLC
,
SNAP
, IP
, ARP
, TCP
,
UDP
, ICMP
, BOOTP
, DHCP
,
EAPOL
, RC4EAPOL
, RSNEAPOL
, DNS
,
LOOPBACK
, IPv6
, ICMPv6
, SLL
,
DHCPv6
, DOT1AD
, DOT1Q
, PPPOE
,
STP
, PPI
, IPSEC_AH
, IPSEC_ESP
,
PKTAP
, MPLS
, DOT11_CONTROL_TA
, VXLAN
,
UNKNOWN = 999
, USER_DEFINED_PDU = 1000
} |
| | Enum which identifies each type of PDU. More...
|
| typedef byte_array | serialization_type |
|
|
| TINS_DEPRECATED (typedef query Query) |
|
| TINS_DEPRECATED (typedef resource Resource) |
| | DNS () |
| | Default constructor.
|
| | DNS (const uint8_t *buffer, uint32_t total_sz) |
| | Constructs a DNS object from a buffer.
|
| uint16_t | id () const |
| | Getter for the id field.
|
| QRType | type () const |
| | Getter for the query response field.
|
| uint8_t | opcode () const |
| | Getter for the opcode field.
|
| uint8_t | authoritative_answer () const |
| | Getter for the authoritative answer field.
|
| uint8_t | truncated () const |
| | Getter for the truncated field.
|
| uint8_t | recursion_desired () const |
| | Getter for the recursion desired field.
|
| uint8_t | recursion_available () const |
| | Getter for the recursion available field.
|
| uint8_t | z () const |
| | Getter for the z desired field.
|
| uint8_t | authenticated_data () const |
| | Getter for the authenticated data field.
|
| uint8_t | checking_disabled () const |
| | Getter for the checking disabled field.
|
| uint8_t | rcode () const |
| | Getter for the rcode field.
|
| uint16_t | questions_count () const |
| | Getter for the questions field.
|
| uint16_t | answers_count () const |
| | Getter for the answers field.
|
| uint16_t | authority_count () const |
| | Getter for the authority field.
|
| uint16_t | additional_count () const |
| | Getter for the additional field.
|
| PDUType | pdu_type () const |
| | Getter for the PDU's type.
|
| uint32_t | header_size () const |
| | The header's size.
|
| void | id (uint16_t new_id) |
| | Setter for the id field.
|
| void | type (QRType new_qr) |
| | Setter for the query response field.
|
| void | opcode (uint8_t new_opcode) |
| | Setter for the opcode field.
|
| void | authoritative_answer (uint8_t new_aa) |
| | Setter for the authoritative answer field.
|
| void | truncated (uint8_t new_tc) |
| | Setter for the truncated field.
|
| void | recursion_desired (uint8_t new_rd) |
| | Setter for the recursion desired field.
|
| void | recursion_available (uint8_t new_ra) |
| | Setter for the recursion available field.
|
| void | z (uint8_t new_z) |
| | Setter for the z(reserved) field.
|
| void | authenticated_data (uint8_t new_ad) |
| | Setter for the authenticated data field.
|
| void | checking_disabled (uint8_t new_cd) |
| | Setter for the checking disabled field.
|
| void | rcode (uint8_t new_rcode) |
| | Setter for the rcode field.
|
| void | add_query (const query &query) |
| | Add a query to perform.
|
| void | add_answer (const resource &resource) |
| | Add an answer resource record.
|
| void | add_authority (const resource &resource) |
| | Add an authority resource record.
|
| void | add_additional (const resource &resource) |
| | Add an additional resource record.
|
| queries_type | queries () const |
| | Getter for this PDU's DNS queries.
|
| resources_type | answers () const |
| | Getter for this PDU's DNS answers.
|
| resources_type | authority () const |
| | Getter for this PDU's DNS authority records.
|
| resources_type | additional () const |
| | Getter for this PDU's DNS additional records.
|
| bool | matches_response (const uint8_t *ptr, uint32_t total_sz) const |
| | Check whether ptr points to a valid response for this PDU.
|
| DNS * | clone () const |
|
| PDU () |
| | Default constructor.
|
| | PDU (PDU &&rhs) TINS_NOEXCEPT |
| | Move constructor.
|
| PDU & | operator= (PDU &&rhs) TINS_NOEXCEPT |
| | Move assignment operator.
|
| virtual | ~PDU () |
| | PDU destructor.
|
| virtual uint32_t | trailer_size () const |
| | Trailer's size.
|
| uint32_t | size () const |
| | The whole chain of PDU's size, including this one.
|
| virtual uint32_t | advertised_size () const |
| | The whole chain of PDU's advertised size, including this one.
|
| PDU * | inner_pdu () const |
| | Getter for the inner PDU.
|
| PDU * | parent_pdu () const |
| PDU * | release_inner_pdu () |
| | Releases the inner PDU.
|
| void | inner_pdu (PDU *next_pdu) |
| | Sets the child PDU.
|
| void | inner_pdu (const PDU &next_pdu) |
| | Sets the child PDU.
|
| serialization_type | serialize () |
| | Serializes the whole chain of PDU's, including this one.
|
| template<typename T> |
| T * | find_pdu (PDUType type=T::pdu_flag) |
| | Finds and returns the first PDU that matches the given flag.
|
| template<typename T> |
| const T * | find_pdu (PDUType type=T::pdu_flag) const |
| | Finds and returns the first PDU that matches the given flag.
|
| template<typename T> |
| T & | rfind_pdu (PDUType type=T::pdu_flag) |
| | Finds and returns the first PDU that matches the given flag.
|
| template<typename T> |
| const T & | rfind_pdu (PDUType type=T::pdu_flag) const |
| | Finds and returns the first PDU that matches the given flag.
|
| virtual void | send (PacketSender &sender, const NetworkInterface &iface) |
| | Send the stack of PDUs through a PacketSender.
|
| virtual PDU * | recv_response (PacketSender &sender, const NetworkInterface &iface) |
| | Receives a matching response for this packet.
|
| virtual bool | matches_flag (PDUType flag) const |
| | Check whether this PDU matches the specified flag.
|
Represents a DNS PDU.
This class represents the DNS PDU, and allows easy access to queries and answer records.
The DNS PDU is not parsed automatically while sniffing, so you will have to parse it manually from an UDP packet's payload, for example:
UDP udp = get_udp_packet();
}
Struct that represent DNS queries.
Definition dns.h:177
queries_type queries() const
Getter for this PDU's DNS queries.
Definition dns.cpp:558
DNS()
Default constructor.
Definition dns.cpp:55
T & rfind_pdu(PDUType type=T::pdu_flag)
Finds and returns the first PDU that matches the given flag.
Definition pdu.h:393