@@ -64,6 +64,26 @@ def batch_resolve_a_aaaa(self, qname, *args, **kwargs):
6464 return do_resolve_a_aaaa (self , qname , * args , ** kwargs )
6565
6666
67+ @shared_task (
68+ bind = True ,
69+ soft_time_limit = settings .SHARED_TASK_SOFT_TIME_LIMIT_HIGH ,
70+ time_limit = settings .SHARED_TASK_TIME_LIMIT_HIGH ,
71+ base = SetupUnboundContext ,
72+ )
73+ def resolve_all_a_aaaa (self , qname , * args , ** kwargs ):
74+ return do_resolve_all_a_aaaa (self , qname , * args , ** kwargs )
75+
76+
77+ @batch_shared_task (
78+ bind = True ,
79+ soft_time_limit = settings .BATCH_SHARED_TASK_SOFT_TIME_LIMIT_HIGH ,
80+ time_limit = settings .BATCH_SHARED_TASK_TIME_LIMIT_HIGH ,
81+ base = SetupUnboundContext ,
82+ )
83+ def batch_resolve_all_a_aaaa (self , qname , * args , ** kwargs ):
84+ return do_resolve_all_a_aaaa (self , qname , * args , ** kwargs )
85+
86+
6787@shared_task (
6888 bind = True ,
6989 soft_time_limit = settings .SHARED_TASK_SOFT_TIME_LIMIT_HIGH ,
@@ -162,6 +182,18 @@ def do_resolve_a_aaaa(self, qname, *args, **kwargs):
162182 return af_ip_pairs
163183
164184
185+ def do_resolve_all_a_aaaa (self , qname , * args , ** kwargs ):
186+ """Resolve all A and AAAA records and return all results for each type."""
187+ af_ip_pairs = []
188+ ip4 = self .resolve (qname , unbound .RR_TYPE_A )
189+ for ip in ip4 :
190+ af_ip_pairs .append ((socket .AF_INET , ip ))
191+ ip6 = self .resolve (qname , unbound .RR_TYPE_AAAA )
192+ for ip in ip6 :
193+ af_ip_pairs .append ((socket .AF_INET6 , ip ))
194+ return af_ip_pairs
195+
196+
165197def do_resolve_mx_ips (self , url , * args , ** kwargs ):
166198 """Resolve the domain's mailservers
167199 returns [(mailserver, af_ip_pairs)]
@@ -172,13 +204,7 @@ def do_resolve_mx_ips(self, url, *args, **kwargs):
172204 if status is not MxStatus .has_mx :
173205 continue
174206
175- af_ip_pairs = []
176- ip4 = self .resolve (qname , unbound .RR_TYPE_A )
177- for ip in ip4 :
178- af_ip_pairs .append ((socket .AF_INET , ip ))
179- ip6 = self .resolve (qname , unbound .RR_TYPE_AAAA )
180- for ip in ip6 :
181- af_ip_pairs .append ((socket .AF_INET6 , ip ))
207+ af_ip_pairs = do_resolve_all_a_aaaa (self , qname , * args , ** kwargs )
182208 mx_ips_pairs .append ((qname , af_ip_pairs ))
183209
184210 return mx_ips_pairs
@@ -195,7 +221,7 @@ def do_resolve_ns_ips(self, url, *args, **kwargs):
195221 next_label = next_label [next_label .find ("." ) + 1 :]
196222
197223 for rr in rrset :
198- yield (rr , do_resolve_a_aaaa (self , rr ))
224+ yield (rr , do_resolve_all_a_aaaa (self , rr ))
199225
200226
201227def resolve_dane (task , port , dname , check_nxdomain = False ):
0 commit comments