apply some simplifications to dns example
This commit is contained in:
parent
6e166174d6
commit
0e37c6b8a1
1 changed files with 6 additions and 5 deletions
|
|
@ -28,17 +28,18 @@ bool validate_hdzero(HParseResult *p) {
|
||||||
bool validate_message(HParseResult *p) {
|
bool validate_message(HParseResult *p) {
|
||||||
if (TT_SEQUENCE != p->ast->token_type)
|
if (TT_SEQUENCE != p->ast->token_type)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
dns_header_t *header = H_FIELD(dns_header_t, 0);
|
dns_header_t *header = H_FIELD(dns_header_t, 0);
|
||||||
size_t qd = header->question_count;
|
size_t qd = header->question_count;
|
||||||
size_t an = header->answer_count;
|
size_t an = header->answer_count;
|
||||||
size_t ns = header->authority_count;
|
size_t ns = header->authority_count;
|
||||||
size_t ar = header->additional_count;
|
size_t ar = header->additional_count;
|
||||||
HParsedToken *questions = p->ast->seq->elements[1];
|
|
||||||
if (questions->seq->used != qd)
|
if (H_FIELD_SEQ(1)->used != qd)
|
||||||
return false;
|
return false;
|
||||||
HParsedToken *rrs = p->ast->seq->elements[2];
|
if (an+ns+ar != H_FIELD_SEQ(2)->used)
|
||||||
if (an+ns+ar != rrs->seq->used)
|
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -51,7 +52,7 @@ bool validate_message(HParseResult *p) {
|
||||||
void set_rdata(struct dns_rr rr, HCountedArray *rdata) {
|
void set_rdata(struct dns_rr rr, HCountedArray *rdata) {
|
||||||
uint8_t *data = h_arena_malloc(rdata->arena, sizeof(uint8_t)*rdata->used);
|
uint8_t *data = h_arena_malloc(rdata->arena, sizeof(uint8_t)*rdata->used);
|
||||||
for (size_t i=0; i<rdata->used; ++i)
|
for (size_t i=0; i<rdata->used; ++i)
|
||||||
data[i] = rdata->elements[i]->uint;
|
data[i] = h_cast_uint(rdata->elements[i]);
|
||||||
|
|
||||||
// Parse RDATA if possible.
|
// Parse RDATA if possible.
|
||||||
const HParseResult *p = NULL;
|
const HParseResult *p = NULL;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue