Skip to content

Commit e1daa02

Browse files
committed
Support "ANY" for resolving (iphelix/dnschef#22)
1 parent d5716ba commit e1daa02

File tree

1 file changed

+3
-10
lines changed

1 file changed

+3
-10
lines changed

dnschef/kitchen.py

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -162,24 +162,17 @@ def datagram_received(self, data, addr):
162162
fake_record = fake_records[qtype]
163163
logger.info(f"cooking response", type=qtype, name=qname, record=fake_record)
164164

165-
try:
166-
response_func = getattr(self.dnsresponses, f"do_{qtype}")
167-
except AttributeError:
168-
response_func = getattr(self.dnsresponses, "do_default")
165+
response_func = getattr(self.dnsresponses, f"do_{qtype}", "do_default")
169166

170167
task = asyncio.create_task(response_func(addr, fake_record, qname, qtype))
171168
task.add_done_callback(functools.partial(self.send_response, response=response, addr=addr))
172169

173-
elif qtype == "*" and None not in list(fake_records.values()):
170+
elif (qtype == "*" or qtype == "ANY") and None not in list(fake_records.values()):
174171
logger.info("cooking response with all known fake records", type='ANY', name=qname)
175172

176173
for qtype, fake_record in list(fake_records.items()):
177174
if fake_record:
178-
try:
179-
response_func = getattr(self.dnsresponses, f"do_{qtype}")
180-
except AttributeError:
181-
response_func = getattr(self.dnsresponses, "do_default")
182-
175+
response_func = getattr(self.dnsresponses, f"do_{qtype}", "do_default")
183176
response.add_answer(response_func(addr, fake_record, qname, qtype))
184177

185178
self.transport.sendto(response.pack(), addr)

0 commit comments

Comments
 (0)