fix CH class response

This commit is contained in:
TCY16
2021-09-28 16:35:50 +02:00
parent 42ba5ae4a2
commit 3ba8ea321a
+11 -3
View File
@@ -1057,13 +1057,21 @@ deny_refuse(struct comm_point* c, enum acl_access acl,
sldns_buffer_flip(c->buffer);
return 1;
}
sldns_buffer_skip(c->buffer, (ssize_t)sizeof(uint16_t)); /* skip qtype */
sldns_buffer_skip(c->buffer, (ssize_t)sizeof(uint16_t)); /* skip qclass */
LDNS_QR_SET(sldns_buffer_begin(c->buffer));
LDNS_RCODE_SET(sldns_buffer_begin(c->buffer),
LDNS_RCODE_REFUSED);
sldns_buffer_skip(c->buffer, (ssize_t)sizeof(uint16_t)); /* skip qtype */
/* check the qclass */
if (sldns_buffer_read_u16(c->buffer) != LDNS_RR_CLASS_IN) {
LDNS_ANCOUNT_SET(sldns_buffer_begin(c->buffer), 0);
LDNS_NSCOUNT_SET(sldns_buffer_begin(c->buffer), 0);
LDNS_ARCOUNT_SET(sldns_buffer_begin(c->buffer), 0);
sldns_buffer_flip(c->buffer);
return 1;
}
/* check edns section is present */
if(LDNS_ARCOUNT(sldns_buffer_begin(c->buffer)) != 1) {
LDNS_ANCOUNT_SET(sldns_buffer_begin(c->buffer), 0);