Great Symbol Renaming: types.
This commit is contained in:
parent
55d0ace87b
commit
5163f002cf
5 changed files with 77 additions and 77 deletions
|
|
@ -5,7 +5,7 @@
|
||||||
#define false 0
|
#define false 0
|
||||||
#define true 1
|
#define true 1
|
||||||
|
|
||||||
bool is_zero(parse_result_t *p) {
|
bool is_zero(HParseResult *p) {
|
||||||
if (TT_UINT != p->ast->token_type)
|
if (TT_UINT != p->ast->token_type)
|
||||||
return false;
|
return false;
|
||||||
return (0 == p->ast->uint);
|
return (0 == p->ast->uint);
|
||||||
|
|
@ -15,19 +15,19 @@ bool is_zero(parse_result_t *p) {
|
||||||
* Every DNS message should have QDCOUNT entries in the question
|
* Every DNS message should have QDCOUNT entries in the question
|
||||||
* section, and ANCOUNT+NSCOUNT+ARCOUNT resource records.
|
* section, and ANCOUNT+NSCOUNT+ARCOUNT resource records.
|
||||||
*/
|
*/
|
||||||
bool validate_dns(parse_result_t *p) {
|
bool validate_dns(HParseResult *p) {
|
||||||
if (TT_SEQUENCE != p->ast->token_type)
|
if (TT_SEQUENCE != p->ast->token_type)
|
||||||
return false;
|
return false;
|
||||||
// The header holds the counts as its last 4 elements.
|
// The header holds the counts as its last 4 elements.
|
||||||
parsed_token_t **elems = p->ast->seq->elements[0]->seq->elements;
|
HParsedToken **elems = p->ast->seq->elements[0]->seq->elements;
|
||||||
size_t qd = elems[8]->uint;
|
size_t qd = elems[8]->uint;
|
||||||
size_t an = elems[9]->uint;
|
size_t an = elems[9]->uint;
|
||||||
size_t ns = elems[10]->uint;
|
size_t ns = elems[10]->uint;
|
||||||
size_t ar = elems[11]->uint;
|
size_t ar = elems[11]->uint;
|
||||||
parsed_token_t *questions = p->ast->seq->elements[1];
|
HParsedToken *questions = p->ast->seq->elements[1];
|
||||||
if (questions->seq->used != qd)
|
if (questions->seq->used != qd)
|
||||||
return false;
|
return false;
|
||||||
parsed_token_t *rrs = p->ast->seq->elements[2];
|
HParsedToken *rrs = p->ast->seq->elements[2];
|
||||||
if (an+ns+ar != rrs->seq->used)
|
if (an+ns+ar != rrs->seq->used)
|
||||||
return false;
|
return false;
|
||||||
return true;
|
return true;
|
||||||
|
|
@ -35,13 +35,13 @@ bool validate_dns(parse_result_t *p) {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
const parsed_token_t* pack_dns_struct(const parse_result_t *p) {
|
const HParsedToken* pack_dns_struct(const HParseResult *p) {
|
||||||
parsed_token_t *ret = arena_malloc(p->arena, sizeof(parsed_token_t*));
|
HParsedToken *ret = arena_malloc(p->arena, sizeof(HParsedToken*));
|
||||||
ret->token_type = TT_USER;
|
ret->token_type = TT_USER;
|
||||||
|
|
||||||
dns_message_t *msg = arena_malloc(p->arena, sizeof(dns_message_t*));
|
dns_message_t *msg = arena_malloc(p->arena, sizeof(dns_message_t*));
|
||||||
|
|
||||||
parsed_token_t *hdr = p->ast->seq->elements[0];
|
HParsedToken *hdr = p->ast->seq->elements[0];
|
||||||
struct dns_header header = {
|
struct dns_header header = {
|
||||||
.id = hdr->seq->elements[0]->uint,
|
.id = hdr->seq->elements[0]->uint,
|
||||||
.qr = hdr->seq->elements[1]->uint,
|
.qr = hdr->seq->elements[1]->uint,
|
||||||
|
|
@ -58,7 +58,7 @@ const parsed_token_t* pack_dns_struct(const parse_result_t *p) {
|
||||||
};
|
};
|
||||||
msg->header = header;
|
msg->header = header;
|
||||||
|
|
||||||
parsed_token_t *qs = p->ast->seq->elements[1];
|
HParsedToken *qs = p->ast->seq->elements[1];
|
||||||
struct dns_question *questions = arena_malloc(p->arena,
|
struct dns_question *questions = arena_malloc(p->arena,
|
||||||
sizeof(struct dns_question)*(header.question_count));
|
sizeof(struct dns_question)*(header.question_count));
|
||||||
for (size_t i=0; i<header.question_count; ++i) {
|
for (size_t i=0; i<header.question_count; ++i) {
|
||||||
|
|
@ -68,7 +68,7 @@ const parsed_token_t* pack_dns_struct(const parse_result_t *p) {
|
||||||
}
|
}
|
||||||
msg->questions = questions;
|
msg->questions = questions;
|
||||||
|
|
||||||
parsed_token_t *rrs = p->ast->seq->elements[2];
|
HParsedToken *rrs = p->ast->seq->elements[2];
|
||||||
struct dns_rr *answers = arena_malloc(p->arena,
|
struct dns_rr *answers = arena_malloc(p->arena,
|
||||||
sizeof(struct dns_rr)*(header.answer_count));
|
sizeof(struct dns_rr)*(header.answer_count));
|
||||||
for (size_t i=0; i<header.answer_count; ++i) {
|
for (size_t i=0; i<header.answer_count; ++i) {
|
||||||
|
|
@ -109,14 +109,14 @@ const parsed_token_t* pack_dns_struct(const parse_result_t *p) {
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
const parser_t* init_parser() {
|
const HParser* init_parser() {
|
||||||
static parser_t *dns_message = NULL;
|
static HParser *dns_message = NULL;
|
||||||
if (dns_message)
|
if (dns_message)
|
||||||
return dns_message;
|
return dns_message;
|
||||||
|
|
||||||
const parser_t *domain = init_domain();
|
const HParser *domain = init_domain();
|
||||||
|
|
||||||
const parser_t *dns_header = sequence(bits(16, false), // ID
|
const HParser *dns_header = sequence(bits(16, false), // ID
|
||||||
bits(1, false), // QR
|
bits(1, false), // QR
|
||||||
bits(4, false), // opcode
|
bits(4, false), // opcode
|
||||||
bits(1, false), // AA
|
bits(1, false), // AA
|
||||||
|
|
@ -131,19 +131,19 @@ const parser_t* init_parser() {
|
||||||
uint16(), // ARCOUNT
|
uint16(), // ARCOUNT
|
||||||
NULL);
|
NULL);
|
||||||
|
|
||||||
const parser_t *type = int_range(uint16(), 1, 16);
|
const HParser *type = int_range(uint16(), 1, 16);
|
||||||
|
|
||||||
const parser_t *qtype = choice(type,
|
const HParser *qtype = choice(type,
|
||||||
int_range(uint16(), 252, 255),
|
int_range(uint16(), 252, 255),
|
||||||
NULL);
|
NULL);
|
||||||
|
|
||||||
const parser_t *class = int_range(uint16(), 1, 4);
|
const HParser *class = int_range(uint16(), 1, 4);
|
||||||
|
|
||||||
const parser_t *qclass = choice(class,
|
const HParser *qclass = choice(class,
|
||||||
int_range(uint16(), 255, 255),
|
int_range(uint16(), 255, 255),
|
||||||
NULL);
|
NULL);
|
||||||
|
|
||||||
const parser_t *dns_question = sequence(sequence(many1(length_value(uint8(),
|
const HParser *dns_question = sequence(sequence(many1(length_value(uint8(),
|
||||||
uint8())),
|
uint8())),
|
||||||
ch('\x00'),
|
ch('\x00'),
|
||||||
NULL), // QNAME
|
NULL), // QNAME
|
||||||
|
|
@ -152,7 +152,7 @@ const parser_t* init_parser() {
|
||||||
NULL);
|
NULL);
|
||||||
|
|
||||||
|
|
||||||
const parser_t *dns_rr = sequence(domain, // NAME
|
const HParser *dns_rr = sequence(domain, // NAME
|
||||||
type, // TYPE
|
type, // TYPE
|
||||||
class, // CLASS
|
class, // CLASS
|
||||||
uint32(), // TTL
|
uint32(), // TTL
|
||||||
|
|
@ -160,7 +160,7 @@ const parser_t* init_parser() {
|
||||||
NULL);
|
NULL);
|
||||||
|
|
||||||
|
|
||||||
dns_message = (parser_t*)attr_bool(sequence(dns_header,
|
dns_message = (HParser*)attr_bool(sequence(dns_header,
|
||||||
many(dns_question),
|
many(dns_question),
|
||||||
many(dns_rr),
|
many(dns_rr),
|
||||||
end_p(),
|
end_p(),
|
||||||
|
|
|
||||||
|
|
@ -51,7 +51,7 @@ const parser_t* init_domain() {
|
||||||
* ... but this is easier and equivalent
|
* ... but this is easier and equivalent
|
||||||
*/
|
*/
|
||||||
|
|
||||||
const parser_t *subdomain = sepBy1(label, ch('.'));
|
const HParser *subdomain = sepBy1(label, ch('.'));
|
||||||
|
|
||||||
domain = choice(subdomain,
|
domain = choice(subdomain,
|
||||||
ch(' '),
|
ch(' '),
|
||||||
|
|
@ -60,8 +60,8 @@ const parser_t* init_domain() {
|
||||||
return domain;
|
return domain;
|
||||||
}
|
}
|
||||||
|
|
||||||
const parser_t* init_character_string() {
|
const HParser* init_character_string() {
|
||||||
static const parser_t *cstr = NULL;
|
static const HParser *cstr = NULL;
|
||||||
if (cstr)
|
if (cstr)
|
||||||
return cstr;
|
return cstr;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@
|
||||||
|
|
||||||
#include "../src/hammer.h"
|
#include "../src/hammer.h"
|
||||||
|
|
||||||
const parser_t* init_domain();
|
const HParser* init_domain();
|
||||||
const parser_t* init_character_string();
|
const HParser* init_character_string();
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
||||||
|
|
@ -5,8 +5,8 @@
|
||||||
#define false 0
|
#define false 0
|
||||||
#define true 1
|
#define true 1
|
||||||
|
|
||||||
const parser_t* init_cname() {
|
const HParser* init_cname() {
|
||||||
static const parser_t *cname = NULL;
|
static const HParser *cname = NULL;
|
||||||
if (cname)
|
if (cname)
|
||||||
return cname;
|
return cname;
|
||||||
|
|
||||||
|
|
@ -17,12 +17,12 @@ const parser_t* init_cname() {
|
||||||
return cname;
|
return cname;
|
||||||
}
|
}
|
||||||
|
|
||||||
const parser_t* init_hinfo() {
|
const HParser* init_hinfo() {
|
||||||
static const parser_t *hinfo = NULL;
|
static const HParser *hinfo = NULL;
|
||||||
if (hinfo)
|
if (hinfo)
|
||||||
return hinfo;
|
return hinfo;
|
||||||
|
|
||||||
const parser_t* cstr = init_character_string();
|
const HParser* cstr = init_character_string();
|
||||||
|
|
||||||
hinfo = sequence(cstr,
|
hinfo = sequence(cstr,
|
||||||
cstr,
|
cstr,
|
||||||
|
|
@ -32,8 +32,8 @@ const parser_t* init_hinfo() {
|
||||||
return hinfo;
|
return hinfo;
|
||||||
}
|
}
|
||||||
|
|
||||||
const parser_t* init_mb() {
|
const HParser* init_mb() {
|
||||||
static const parser_t *mb = NULL;
|
static const HParser *mb = NULL;
|
||||||
if (mb)
|
if (mb)
|
||||||
return mb;
|
return mb;
|
||||||
|
|
||||||
|
|
@ -44,8 +44,8 @@ const parser_t* init_mb() {
|
||||||
return mb;
|
return mb;
|
||||||
}
|
}
|
||||||
|
|
||||||
const parser_t* init_md() {
|
const HParser* init_md() {
|
||||||
static const parser_t *md = NULL;
|
static const HParser *md = NULL;
|
||||||
if (md)
|
if (md)
|
||||||
return md;
|
return md;
|
||||||
|
|
||||||
|
|
@ -56,8 +56,8 @@ const parser_t* init_md() {
|
||||||
return md;
|
return md;
|
||||||
}
|
}
|
||||||
|
|
||||||
const parser_t* init_mf() {
|
const HParser* init_mf() {
|
||||||
static const parser_t *mf = NULL;
|
static const HParser *mf = NULL;
|
||||||
if (mf)
|
if (mf)
|
||||||
return mf;
|
return mf;
|
||||||
|
|
||||||
|
|
@ -68,8 +68,8 @@ const parser_t* init_mf() {
|
||||||
return mf;
|
return mf;
|
||||||
}
|
}
|
||||||
|
|
||||||
const parser_t* init_mg() {
|
const HParser* init_mg() {
|
||||||
static const parser_t *mg = NULL;
|
static const HParser *mg = NULL;
|
||||||
if (mg)
|
if (mg)
|
||||||
return mg;
|
return mg;
|
||||||
|
|
||||||
|
|
@ -80,12 +80,12 @@ const parser_t* init_mg() {
|
||||||
return mg;
|
return mg;
|
||||||
}
|
}
|
||||||
|
|
||||||
const parser_t* init_minfo() {
|
const HParser* init_minfo() {
|
||||||
static const parser_t *minfo = NULL;
|
static const HParser *minfo = NULL;
|
||||||
if (minfo)
|
if (minfo)
|
||||||
return minfo;
|
return minfo;
|
||||||
|
|
||||||
const parser_t* domain = init_domain();
|
const HParser* domain = init_domain();
|
||||||
|
|
||||||
minfo = sequence(domain,
|
minfo = sequence(domain,
|
||||||
domain,
|
domain,
|
||||||
|
|
@ -95,8 +95,8 @@ const parser_t* init_minfo() {
|
||||||
return minfo;
|
return minfo;
|
||||||
}
|
}
|
||||||
|
|
||||||
const parser_t* init_mr() {
|
const HParser* init_mr() {
|
||||||
static const parser_t *mr = NULL;
|
static const HParser *mr = NULL;
|
||||||
if (mr)
|
if (mr)
|
||||||
return mr;
|
return mr;
|
||||||
|
|
||||||
|
|
@ -107,8 +107,8 @@ const parser_t* init_mr() {
|
||||||
return mr;
|
return mr;
|
||||||
}
|
}
|
||||||
|
|
||||||
const parser_t* init_mx() {
|
const HParser* init_mx() {
|
||||||
static const parser_t *mx = NULL;
|
static const HParser *mx = NULL;
|
||||||
if (mx)
|
if (mx)
|
||||||
return mx;
|
return mx;
|
||||||
|
|
||||||
|
|
@ -126,8 +126,8 @@ bool validate_null(parse_result_t *p) {
|
||||||
return (65536 > p->ast->seq->used);
|
return (65536 > p->ast->seq->used);
|
||||||
}
|
}
|
||||||
|
|
||||||
const parser_t* init_null() {
|
const HParser* init_null() {
|
||||||
static const parser_t *null_ = NULL;
|
static const HParser *null_ = NULL;
|
||||||
if (null_)
|
if (null_)
|
||||||
return null_;
|
return null_;
|
||||||
|
|
||||||
|
|
@ -136,8 +136,8 @@ const parser_t* init_null() {
|
||||||
return null_;
|
return null_;
|
||||||
}
|
}
|
||||||
|
|
||||||
const parser_t* init_ns() {
|
const HParser* init_ns() {
|
||||||
static const parser_t *ns = NULL;
|
static const HParser *ns = NULL;
|
||||||
if (ns)
|
if (ns)
|
||||||
return ns;
|
return ns;
|
||||||
|
|
||||||
|
|
@ -148,8 +148,8 @@ const parser_t* init_ns() {
|
||||||
return ns;
|
return ns;
|
||||||
}
|
}
|
||||||
|
|
||||||
const parser_t* init_ptr() {
|
const HParser* init_ptr() {
|
||||||
static const parser_t *ptr = NULL;
|
static const HParser *ptr = NULL;
|
||||||
if (ptr)
|
if (ptr)
|
||||||
return ptr;
|
return ptr;
|
||||||
|
|
||||||
|
|
@ -160,12 +160,12 @@ const parser_t* init_ptr() {
|
||||||
return ptr;
|
return ptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
const parser_t* init_soa() {
|
const HParser* init_soa() {
|
||||||
static const parser_t *soa = NULL;
|
static const HParser *soa = NULL;
|
||||||
if (soa)
|
if (soa)
|
||||||
return soa;
|
return soa;
|
||||||
|
|
||||||
const parser_t *domain = init_domain();
|
const HParser *domain = init_domain();
|
||||||
|
|
||||||
soa = sequence(domain, // MNAME
|
soa = sequence(domain, // MNAME
|
||||||
domain, // RNAME
|
domain, // RNAME
|
||||||
|
|
@ -180,8 +180,8 @@ const parser_t* init_soa() {
|
||||||
return soa;
|
return soa;
|
||||||
}
|
}
|
||||||
|
|
||||||
const parser_t* init_txt() {
|
const HParser* init_txt() {
|
||||||
static const parser_t *txt = NULL;
|
static const HParser *txt = NULL;
|
||||||
if (txt)
|
if (txt)
|
||||||
return txt;
|
return txt;
|
||||||
|
|
||||||
|
|
@ -192,8 +192,8 @@ const parser_t* init_txt() {
|
||||||
return txt;
|
return txt;
|
||||||
}
|
}
|
||||||
|
|
||||||
const parser_t* init_a() {
|
const HParser* init_a() {
|
||||||
static const parser_t *a = NULL;
|
static const HParser *a = NULL;
|
||||||
if (a)
|
if (a)
|
||||||
return a;
|
return a;
|
||||||
|
|
||||||
|
|
@ -204,8 +204,8 @@ const parser_t* init_a() {
|
||||||
return a;
|
return a;
|
||||||
}
|
}
|
||||||
|
|
||||||
const parser_t* init_wks() {
|
const HParser* init_wks() {
|
||||||
static const parser_t *wks = NULL;
|
static const HParser *wks = NULL;
|
||||||
if (wks)
|
if (wks)
|
||||||
return wks;
|
return wks;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -3,21 +3,21 @@
|
||||||
|
|
||||||
#include "../src/hammer.h"
|
#include "../src/hammer.h"
|
||||||
|
|
||||||
const parser_t* init_cname();
|
const HParser* init_cname();
|
||||||
const parser_t* init_hinfo();
|
const HParser* init_hinfo();
|
||||||
const parser_t* init_mb();
|
const HParser* init_mb();
|
||||||
const parser_t* init_md();
|
const HParser* init_md();
|
||||||
const parser_t* init_mf();
|
const HParser* init_mf();
|
||||||
const parser_t* init_mg();
|
const HParser* init_mg();
|
||||||
const parser_t* init_minfo();
|
const HParser* init_minfo();
|
||||||
const parser_t* init_mr();
|
const HParser* init_mr();
|
||||||
const parser_t* init_mx();
|
const HParser* init_mx();
|
||||||
const parser_t* init_null();
|
const HParser* init_null();
|
||||||
const parser_t* init_ns();
|
const HParser* init_ns();
|
||||||
const parser_t* init_ptr();
|
const HParser* init_ptr();
|
||||||
const parser_t* init_soa();
|
const HParser* init_soa();
|
||||||
const parser_t* init_txt();
|
const HParser* init_txt();
|
||||||
const parser_t* init_a();
|
const HParser* init_a();
|
||||||
const parser_t* init_wks();
|
const HParser* init_wks();
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue