at master 2.2 kB view raw
1--- a/sleekxmpp/xmlstream/resolver.py 2+++ b/sleekxmpp/xmlstream/resolver.py 3@@ -175,6 +175,9 @@ def get_A(host, resolver=None, use_dnspy 4 """ 5 log.debug("DNS: Querying %s for A records." % host) 6 7+ if isinstance(host, bytes): 8+ host = host.decode("utf-8") 9+ 10 # If not using dnspython, attempt lookup using the OS level 11 # getaddrinfo() method. 12 if resolver is None or not use_dnspython: 13@@ -189,7 +192,10 @@ def get_A(host, resolver=None, use_dnspy 14 # Using dnspython: 15 try: 16 recs = resolver.query(host, dns.rdatatype.A) 17- return [rec.to_text() for rec in recs] 18+ if isinstance(recs[0].to_text(), bytes): 19+ return [rec.to_text().decode("utf-8") for rec in recs] 20+ else: 21+ return [rec.to_text() for rec in recs] 22 except (dns.resolver.NXDOMAIN, dns.resolver.NoAnswer): 23 log.debug("DNS: No A records for %s" % host) 24 return [] 25@@ -222,6 +228,9 @@ def get_AAAA(host, resolver=None, use_dn 26 """ 27 log.debug("DNS: Querying %s for AAAA records." % host) 28 29+ if isinstance(host, bytes): 30+ host = host.decode("utf-8") 31+ 32 # If not using dnspython, attempt lookup using the OS level 33 # getaddrinfo() method. 34 if resolver is None or not use_dnspython: 35@@ -240,7 +249,10 @@ def get_AAAA(host, resolver=None, use_dn 36 # Using dnspython: 37 try: 38 recs = resolver.query(host, dns.rdatatype.AAAA) 39- return [rec.to_text() for rec in recs] 40+ if isinstance(recs[0].to_text(), bytes): 41+ return [rec.to_text().decode("utf-8") for rec in recs] 42+ else: 43+ return [rec.to_text() for rec in recs] 44 except (dns.resolver.NXDOMAIN, dns.resolver.NoAnswer): 45 log.debug("DNS: No AAAA records for %s" % host) 46 return [] 47@@ -324,6 +336,8 @@ def get_SRV(host, port, service, proto=' 48 if running_sum >= selected: 49 rec = sums[running_sum] 50 host = rec.target.to_text() 51+ if isinstance(host, bytes): 52+ host = host.decode("utf-8") 53 if host.endswith('.'): 54 host = host[:-1] 55 sorted_recs.append((host, rec.port))