diff --git a/examples/dns.c b/examples/dns.c index e6dee66dea00fb0274757722990a9a48c346807c..bc948c6b4e055ec31dbb1b74c3868dd9305a3e67 100644 --- a/examples/dns.c +++ b/examples/dns.c @@ -388,7 +388,7 @@ const HParser* init_parser() { h_int_range(h_uint16(), 255, 255), NULL); - const HParser *dns_question = h_sequence(h_sequence(h_many1(h_length_value(h_uint8(), + const HParser *dns_question = h_sequence(h_sequence(h_many1(h_length_value(h_int_range(h_uint8(), 1, 255), h_uint8())), h_ch('\x00'), NULL), // QNAME @@ -405,12 +405,13 @@ const HParser* init_parser() { NULL); - dns_message = (HParser*)h_attr_bool(h_sequence(dns_header, - h_many(dns_question), - h_many(dns_rr), - h_end_p(), - NULL), - validate_dns); + dns_message = (HParser*)h_action(h_attr_bool(h_sequence(dns_header, + h_many(dns_question), + h_many(dns_rr), + h_end_p(), + NULL), + validate_dns), + pack_dns_struct); return dns_message; } diff --git a/src/hammer.h b/src/hammer.h index 95da0eeda926d456ed3cba061a5b7571b4e99c14..62b5676610415b0a03a9546cea7b829b3477d658 100644 --- a/src/hammer.h +++ b/src/hammer.h @@ -229,7 +229,7 @@ const HParser* h_action(const HParser* p, const HAction a); * * Result token type: TT_UINT */ -const HParser* h_not_in(const uint8_t *charset, int length); +const HParser* h_not_in(const uint8_t *charset, size_t length); /** * A no-argument parser that succeeds if there is no more input to