@@ -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