* ACLs allow the snooping. */
if(!(LDNS_RD_WIRE(sldns_buffer_begin(c->buffer))) &&
acl != acl_allow_snoop ) {
-
-
-
- // @TODO ADD Error Code 20 - Not Authoritative
- // @TODO add EDNS record
-
EDNS_OPT_APPEND_EDE(&edns, worker->scratchpad,
LDNS_EDE_NOT_AUTHORITATIVE, "Not Authoritative");
-
-
error_encode(c->buffer, LDNS_RCODE_REFUSED, &qinfo,
*(uint16_t*)(void *)sldns_buffer_begin(c->buffer),
sldns_buffer_read_u16_at(c->buffer, 2), &edns);
if(lzt == local_zone_redirect && local_data_answer(z, env, qinfo,
edns, repinfo, buf, temp, dname_count_labels(qinfo->qname),
&ld, lzt, -1, NULL, 0, NULL, 0)) {
+ if (!local_data_answer(z, env, qinfo,
+ edns, repinfo, buf, temp, dname_count_labels(qinfo->qname),
+ &ld, lzt, -1, NULL, 0, NULL, 0)) /* blocked? */
+ EDNS_OPT_APPEND_EDE(edns, temp,
+ LDNS_EDE_BLOCKED, "");
if(r->log)
log_rpz_apply(z->name,
localzone_type_to_rpz_action(lzt), qinfo,