Use _socket_nodns and select in dnspython support

* I ran into issues where, when passing DNS messages through a proxy with
eventlet 0.17.1 sockets would be prematurely closed. This was not the case in 0.16.1.
This fixes the issue
This commit is contained in:
Tim Simmons
2015-03-10 16:01:09 +00:00
committed by Sergey Shepelev
parent f2aaa0dda9
commit 828287dc22

View File

@@ -38,14 +38,27 @@ from eventlet import patcher
from eventlet.green import _socket_nodns
from eventlet.green import os
from eventlet.green import time
from eventlet.green import select
from eventlet.support import six
dns = patcher.import_patched('dns')
dns.resolver = patcher.import_patched('dns.resolver')
dns = patcher.import_patched('dns',
select=select,
time=time,
os=os,
socket=_socket_nodns)
dns.resolver = patcher.import_patched('dns.resolver',
select=select,
time=time,
os=os,
socket=_socket_nodns)
for pkg in ('dns.entropy', 'dns.inet', 'dns.query'):
setattr(dns, pkg.split('.')[1], patcher.import_patched(pkg))
setattr(dns, pkg.split('.')[1], patcher.import_patched(pkg,
select=select,
time=time,
os=os,
socket=_socket_nodns))
import dns.rdtypes
for pkg in ['dns.rdtypes.IN', 'dns.rdtypes.ANY']:
setattr(dns.rdtypes, pkg.split('.')[-1], patcher.import_patched(pkg))