63 #ifndef UTIL_DATA_MSGPARSE_H 64 #define UTIL_DATA_MSGPARSE_H 75 #define PARSE_TABLE_SIZE 32 192 #define LABEL_IS_PTR(x) ( ((x)&0xc0) == 0xc0 ) 195 #define PTR_OFFSET(x, y) ( ((x)&0x3f)<<8 | (y) ) 197 #define PTR_CREATE(offset) ((uint16_t)(0xc000 | (offset))) 200 #define EDNS_RCODE_BADVERS 16 202 #define PTR_MAX_OFFSET 0x3fff
size_t get_rdf_size(sldns_rdf_type rdf)
struct rrset_parse * msgparse_hashtable_lookup(struct msg_parse *msg, struct sldns_buffer *pkt, hashvalue_type h, uint32_t rrset_flags, uint8_t *dname, size_t dnamelen, uint16_t type, uint16_t dclass)
struct rrset_parse * rrset_last
struct rrset_parse * rrset_all_next
struct rrset_parse * hashtable[PARSE_TABLE_SIZE]
struct rr_parse * rrsig_last
struct rrset_parse * rrset_first
int parse_extract_edns(struct msg_parse *msg, struct edns_data *edns, struct regional *region)
struct rr_parse * rr_first
int parse_edns_from_pkt(struct sldns_buffer *pkt, struct edns_data *edns, struct regional *region)
sldns_pkt_section section
void log_edns_opt_list(enum verbosity_value level, const char *info_str, struct edns_option *list)
struct rrset_parse * rrset_bucket_next
struct edns_option * opt_list
struct edns_option * next
int parse_packet(struct sldns_buffer *pkt, struct msg_parse *msg, struct regional *region)
hashvalue_type pkt_hash_rrset(struct sldns_buffer *pkt, uint8_t *dname, uint16_t type, uint16_t dclass, uint32_t rrset_flags)
struct rr_parse * rrsig_first
void msgparse_bucket_remove(struct msg_parse *msg, struct rrset_parse *rrset)
enum sldns_enum_rdf_type sldns_rdf_type
struct rr_parse * rr_last
enum sldns_enum_pkt_section sldns_pkt_section