Skip to content

Commit 852baab

Browse files
committed
PYTHON-2667 Fix SRV support when running with eventlet (#612)
(cherry picked from commit acfa7b6)
1 parent 5f421d7 commit 852baab

File tree

1 file changed

+9
-7
lines changed

1 file changed

+9
-7
lines changed

pymongo/srv_resolver.py

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -16,13 +16,6 @@
1616

1717
try:
1818
from dns import resolver
19-
20-
try:
21-
# dnspython >= 2
22-
from dns.resolver import resolve as _resolve
23-
except ImportError:
24-
# dnspython 1.X
25-
from dns.resolver import query as _resolve
2619
_HAVE_DNSPYTHON = True
2720
except ImportError:
2821
_HAVE_DNSPYTHON = False
@@ -45,6 +38,15 @@ def maybe_decode(text):
4538
return text
4639

4740

41+
# PYTHON-2667 Lazily call dns.resolver methods for compatibility with eventlet.
42+
def _resolve(*args, **kwargs):
43+
if hasattr(resolver, 'resolve'):
44+
# dnspython >= 2
45+
return resolver.resolve(*args, **kwargs)
46+
# dnspython 1.X
47+
return resolver.query(*args, **kwargs)
48+
49+
4850
class _SrvResolver(object):
4951
def __init__(self, fqdn, connect_timeout=None):
5052
self.__fqdn = fqdn

0 commit comments

Comments
 (0)