summaryrefslogtreecommitdiff
path: root/daemon/worker.c
diff options
context:
space:
mode:
authorDag-Erling Smørgrav <des@FreeBSD.org>2018-09-10 16:30:18 +0000
committerDag-Erling Smørgrav <des@FreeBSD.org>2018-09-10 16:30:18 +0000
commit7b6fdf425a9ef38fe9e16779b3af25863104d9c0 (patch)
tree1ac9dd11604f49ca6a2feae373ff4dc7e6fb0002 /daemon/worker.c
parent4289761a7b61df4b64c11ada446a187df61e6a1e (diff)
Diffstat (limited to 'daemon/worker.c')
-rw-r--r--daemon/worker.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/daemon/worker.c b/daemon/worker.c
index 6121c7dbe363c..44a989a4e9458 100644
--- a/daemon/worker.c
+++ b/daemon/worker.c
@@ -1351,6 +1351,13 @@ worker_handle_request(struct comm_point* c, void* arg, int error,
}
/* If this request does not have the recursion bit set, verify
+ * ACLs allow the recursion bit to be treated as set. */
+ if(!(LDNS_RD_WIRE(sldns_buffer_begin(c->buffer))) &&
+ acl == acl_allow_setrd ) {
+ LDNS_RD_SET(sldns_buffer_begin(c->buffer));
+ }
+
+ /* If this request does not have the recursion bit set, verify
* ACLs allow the snooping. */
if(!(LDNS_RD_WIRE(sldns_buffer_begin(c->buffer))) &&
acl != acl_allow_snoop ) {