diff --git a/examples/dns.c b/examples/dns.c index 54d9c7e..676855e 100644 --- a/examples/dns.c +++ b/examples/dns.c @@ -286,7 +286,7 @@ void set_rr(struct dns_rr rr, HCountedArray *rdata) { const HParsedToken* pack_dns_struct(const HParseResult *p) { h_pprint(stdout, p->ast, 0, 2); 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)); diff --git a/examples/dns.h b/examples/dns.h index 151c46e..a26374e 100644 --- a/examples/dns.h +++ b/examples/dns.h @@ -1,5 +1,13 @@ #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 { uint16_t id; bool qr, aa, tc, rd, ra; @@ -9,6 +17,7 @@ struct dns_header { size_t authority_count; size_t additional_count; }; + struct dns_qname { size_t qlen; struct { @@ -16,11 +25,13 @@ struct dns_qname { uint8_t *label; } *labels; }; + struct dns_question { struct dns_qname qname; uint16_t qtype; uint16_t qclass; }; + struct dns_rr { char* name; uint16_t type;