add user-defined token types for dns parts

This commit is contained in:
Sven M. Hallberg 2013-01-14 20:35:20 +01:00
parent fdf76a0910
commit 40ab87b4fb
2 changed files with 12 additions and 1 deletions

View file

@ -286,7 +286,7 @@ void set_rr(struct dns_rr rr, HCountedArray *rdata) {
const HParsedToken* pack_dns_struct(const HParseResult *p) { const HParsedToken* pack_dns_struct(const HParseResult *p) {
h_pprint(stdout, p->ast, 0, 2); h_pprint(stdout, p->ast, 0, 2);
HParsedToken *ret = h_arena_malloc(p->arena, sizeof(HParsedToken)); HParsedToken *ret = h_arena_malloc(p->arena, sizeof(HParsedToken));
ret->token_type = TT_USER; ret->token_type = TT_DNS_MESSAGE;
dns_message_t *msg = h_arena_malloc(p->arena, sizeof(dns_message_t)); dns_message_t *msg = h_arena_malloc(p->arena, sizeof(dns_message_t));

View file

@ -1,5 +1,13 @@
#include "../src/hammer.h" #include "../src/hammer.h"
enum DNSTokenType_ {
TT_DNS_MESSAGE = TT_USER,
TT_DNS_HEADER,
TT_DNS_QNAME,
TT_DNS_QUESTION,
TT_DNS_RR
};
struct dns_header { struct dns_header {
uint16_t id; uint16_t id;
bool qr, aa, tc, rd, ra; bool qr, aa, tc, rd, ra;
@ -9,6 +17,7 @@ struct dns_header {
size_t authority_count; size_t authority_count;
size_t additional_count; size_t additional_count;
}; };
struct dns_qname { struct dns_qname {
size_t qlen; size_t qlen;
struct { struct {
@ -16,11 +25,13 @@ struct dns_qname {
uint8_t *label; uint8_t *label;
} *labels; } *labels;
}; };
struct dns_question { struct dns_question {
struct dns_qname qname; struct dns_qname qname;
uint16_t qtype; uint16_t qtype;
uint16_t qclass; uint16_t qclass;
}; };
struct dns_rr { struct dns_rr {
char* name; char* name;
uint16_t type; uint16_t type;