Skip to content

Commit b7e76ea

Browse files
authored
Merge pull request #83 from microsoft/loopnoop/caa-updates
Implement CAA record handling in dnsresolver
2 parents 57a014a + ef822e5 commit b7e76ea

File tree

1 file changed

+20
-0
lines changed

1 file changed

+20
-0
lines changed

dusseldorf/listener.dns/src/dnsresolver.py

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,26 @@ def resolve(self, dnsrecord, handler) -> dnslib.DNSRecord:
9999
req = DnsRequest(request_fqdn, "", qtype_s, client_ip, request_fqdn)
100100
resp = req.default_response
101101

102+
# if this is a CAA request, we need to add an additional CAA record
103+
if qtype_s == "CAA":
104+
# add default
105+
answer = self.make_resource_record(resp)
106+
reply.add_answer(answer)
107+
108+
# hardcoded CAA resp
109+
email = "[email protected]"
110+
resp = req.default_response
111+
resp._rdata = { "flags": 0, "tag": "contactemail", "value": email }
112+
caa_answer = self.make_resource_record(resp)
113+
reply.add_answer(caa_answer)
114+
115+
# also iodef
116+
resp = req.default_response
117+
resp._rdata = { "flags": 0, "tag": "iodef", "value": f"mailto:{email}" }
118+
iodef_answer = self.make_resource_record(resp)
119+
reply.add_answer(iodef_answer)
120+
return reply
121+
102122
# if we can't make a rr, raise nxdomain and log it.
103123
if answer := self.make_resource_record(resp):
104124
reply.add_answer(answer)

0 commit comments

Comments
 (0)