|
Data Structures |
struct | ldns_struct_hdr |
| Header of a dns packet. More...
|
struct | ldns_struct_pkt |
| DNS packet. More...
|
Defines |
#define | LDNS_MAX_PACKETLEN 65535 |
#define | LDNS_QR 1 |
#define | LDNS_AA 2 |
#define | LDNS_TC 4 |
#define | LDNS_RD 8 |
#define | LDNS_CD 16 |
#define | LDNS_RA 32 |
#define | LDNS_AD 64 |
Typedefs |
typedef ldns_struct_hdr | ldns_hdr |
typedef ldns_struct_pkt | ldns_pkt |
Enumerations |
enum | ldns_enum_pkt_opcode {
LDNS_PACKET_QUERY = 0,
LDNS_PACKET_IQUERY = 1,
LDNS_PACKET_STATUS = 2,
LDNS_PACKET_NOTIFY = 4,
LDNS_PACKET_UPDATE = 5
} |
enum | ldns_enum_pkt_section {
LDNS_SECTION_QUESTION = 0,
LDNS_SECTION_ANSWER = 1,
LDNS_SECTION_AUTHORITY = 2,
LDNS_SECTION_ADDITIONAL = 3,
LDNS_SECTION_ANY = 4,
LDNS_SECTION_ANY_NOQUESTION = 5
} |
| The sections of a packet. More...
|
enum | ldns_enum_pkt_type {
LDNS_PACKET_QUESTION,
LDNS_PACKET_REFERRAL,
LDNS_PACKET_ANSWER,
LDNS_PACKET_NXDOMAIN,
LDNS_PACKET_NODATA,
LDNS_PACKET_UNKNOWN
} |
| The different types of packets. More...
|
Functions |
uint16_t | ldns_pkt_id (const ldns_pkt *p) |
bool | ldns_pkt_qr (const ldns_pkt *p) |
bool | ldns_pkt_aa (const ldns_pkt *p) |
bool | ldns_pkt_tc (const ldns_pkt *p) |
bool | ldns_pkt_rd (const ldns_pkt *p) |
bool | ldns_pkt_cd (const ldns_pkt *p) |
bool | ldns_pkt_ra (const ldns_pkt *p) |
bool | ldns_pkt_ad (const ldns_pkt *p) |
ldns_pkt_opcode | ldns_pkt_get_opcode (const ldns_pkt *p) |
uint8_t | ldns_pkt_rcode (const ldns_pkt *p) |
uint16_t | ldns_pkt_qdcount (const ldns_pkt *p) |
uint16_t | ldns_pkt_ancount (const ldns_pkt *p) |
uint16_t | ldns_pkt_nscount (const ldns_pkt *p) |
uint16_t | ldns_pkt_arcount (const ldns_pkt *p) |
ldns_rdf * | ldns_pkt_answerfrom (const ldns_pkt *p) |
char * | ldns_pkt_when (const ldns_pkt *p) |
uint32_t | ldns_pkt_querytime (const ldns_pkt *p) |
size_t | ldns_pkt_size (const ldns_pkt *p) |
ldns_rr * | ldns_pkt_tsig (const ldns_pkt *p) |
ldns_rr_list * | ldns_pkt_question (const ldns_pkt *p) |
ldns_rr_list * | ldns_pkt_answer (const ldns_pkt *p) |
ldns_rr_list * | ldns_pkt_authority (const ldns_pkt *p) |
ldns_rr_list * | ldns_pkt_additional (const ldns_pkt *p) |
ldns_rr_list * | ldns_pkt_get_section_clone (ldns_pkt *p, ldns_pkt_section s) |
| return all the rr_list's in the packet.
|
ldns_rr_list * | ldns_pkt_rr_list_by_name (ldns_pkt *p, ldns_rdf *r, ldns_pkt_section s) |
ldns_rr_list * | ldns_pkt_rr_list_by_type (ldns_pkt *p, ldns_rr_type t, ldns_pkt_section s) |
ldns_rr_list * | ldns_pkt_rr_list_by_name_and_type (ldns_pkt *packet, ldns_rdf *ownername, ldns_rr_type type, ldns_pkt_section sec) |
bool | ldns_pkt_set_flags (ldns_pkt *pkt, uint16_t flags) |
| sets the flags in a packet.
|
void | ldns_pkt_set_id (ldns_pkt *p, uint16_t id) |
void | ldns_pkt_set_random_id (ldns_pkt *p) |
void | ldns_pkt_set_qr (ldns_pkt *p, bool b) |
void | ldns_pkt_set_aa (ldns_pkt *p, bool b) |
void | ldns_pkt_set_tc (ldns_pkt *p, bool b) |
void | ldns_pkt_set_rd (ldns_pkt *p, bool b) |
void | ldns_pkt_set_cd (ldns_pkt *p, bool b) |
void | ldns_pkt_set_ra (ldns_pkt *p, bool b) |
void | ldns_pkt_set_ad (ldns_pkt *p, bool b) |
void | ldns_pkt_set_opcode (ldns_pkt *p, ldns_pkt_opcode c) |
void | ldns_pkt_set_rcode (ldns_pkt *p, uint8_t c) |
void | ldns_pkt_set_qdcount (ldns_pkt *p, uint16_t c) |
void | ldns_pkt_set_ancount (ldns_pkt *p, uint16_t c) |
void | ldns_pkt_set_nscount (ldns_pkt *p, uint16_t c) |
void | ldns_pkt_set_arcount (ldns_pkt *p, uint16_t c) |
void | ldns_pkt_set_answerfrom (ldns_pkt *p, ldns_rdf *r) |
void | ldns_pkt_set_querytime (ldns_pkt *p, uint32_t t) |
void | ldns_pkt_set_size (ldns_pkt *p, size_t s) |
void | ldns_pkt_set_when (ldns_pkt *p, char *w) |
void | ldns_pkt_set_section_count (ldns_pkt *p, ldns_pkt_section s, uint16_t x) |
void | ldns_pkt_set_tsig (ldns_pkt *p, ldns_rr *t) |
ldns_pkt_type | ldns_pkt_reply_type (ldns_pkt *p) |
| looks inside the packet to determine what kind of packet it is, AUTH, NXDOMAIN, REFERRAL, etc.
|
uint16_t | ldns_pkt_edns_udp_size (const ldns_pkt *packet) |
uint8_t | ldns_pkt_edns_extended_rcode (const ldns_pkt *packet) |
uint8_t | ldns_pkt_edns_version (const ldns_pkt *packet) |
uint16_t | ldns_pkt_edns_z (const ldns_pkt *packet) |
ldns_rdf * | ldns_pkt_edns_data (const ldns_pkt *packet) |
bool | ldns_pkt_edns_do (const ldns_pkt *packet) |
void | ldns_pkt_set_edns_do (ldns_pkt *packet, bool value) |
bool | ldns_pkt_edns (const ldns_pkt *packet) |
| returns true if this packet needs and EDNS rr to be sent.
|
void | ldns_pkt_set_edns_udp_size (ldns_pkt *packet, uint16_t s) |
void | ldns_pkt_set_edns_extended_rcode (ldns_pkt *packet, uint8_t c) |
void | ldns_pkt_set_edns_version (ldns_pkt *packet, uint8_t v) |
void | ldns_pkt_set_edns_z (ldns_pkt *packet, uint16_t z) |
void | ldns_pkt_set_edns_data (ldns_pkt *packet, ldns_rdf *data) |
ldns_pkt * | ldns_pkt_new () |
| allocates and initializes a ldns_pkt structure.
|
void | ldns_pkt_free (ldns_pkt *packet) |
| frees the packet structure and all data that it contains.
|
ldns_pkt * | ldns_pkt_query_new_frm_str (const char *rr_name, ldns_rr_type rr_type, ldns_rr_class rr_class, uint16_t flags) |
| creates a query packet for the given name, type, class.
|
ldns_pkt * | ldns_pkt_query_new (ldns_rdf *rr_name, ldns_rr_type rr_type, ldns_rr_class rr_class, uint16_t flags) |
| creates a packet with a query in it for the given name, type and class.
|
ldns_pkt * | ldns_pkt_clone (ldns_pkt *pkt) |
| clones the given packet, creating a fully allocated copy
|
ldns_rr * | ldns_pkt_get_rr (ldns_pkt *p, uint16_t n) |
ldns_rr * | ldns_pkt_set_rr (ldns_pkt *p, ldns_rr *rr, uint16_t n) |
bool | ldns_pkt_insert_rr (ldns_pkt *p, ldns_rr *rr, uint16_t n) |