From 4f5c6c26a6c36408a11f9ba40cc47be22fb969ed Mon Sep 17 00:00:00 2001 From: Ryan Williams Date: Thu, 24 Jun 2010 22:33:09 -0700 Subject: [PATCH] Added environment variable to disable greendns if needed, acknowledgement, cleaned up imports in greendns. --- AUTHORS | 3 ++- eventlet/green/socket.py | 9 +++++---- eventlet/support/greendns.py | 5 ++--- 3 files changed, 9 insertions(+), 8 deletions(-) diff --git a/AUTHORS b/AUTHORS index d41dc71..363c4be 100644 --- a/AUTHORS +++ b/AUTHORS @@ -58,4 +58,5 @@ Thanks To * Michael Carter, and Marcin Bachry, nice repro of a bug and good diagnosis leading to the fix * David Ziegler, reporting issue #53 * Favo Yang, twisted hub patch -* Schmir, patch that fixes readline method with chunked encoding in wsgi.py \ No newline at end of file +* Schmir, patch that fixes readline method with chunked encoding in wsgi.py +* Slide, for open-sourcing gogreen \ No newline at end of file diff --git a/eventlet/green/socket.py b/eventlet/green/socket.py index 96569b7..3af128e 100644 --- a/eventlet/green/socket.py +++ b/eventlet/green/socket.py @@ -17,10 +17,11 @@ __patched__ = __socket.__patched__ + ['gethostbyname', 'getaddrinfo'] greendns = None -try: - from eventlet.support import greendns -except ImportError: - pass +if os.environ.get("EVENTLET_NO_GREENDNS",'').lower() != "yes": + try: + from eventlet.support import greendns + except ImportError: + pass __original_gethostbyname__ = __socket.gethostbyname # the thread primitives on Darwin have some bugs that make diff --git a/eventlet/support/greendns.py b/eventlet/support/greendns.py index 645c5ea..b6358af 100644 --- a/eventlet/support/greendns.py +++ b/eventlet/support/greendns.py @@ -35,7 +35,6 @@ # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -import random from eventlet import patcher from eventlet.green import _socket_nodns from eventlet.green import time @@ -43,8 +42,8 @@ from eventlet.green import select __imports = [] for package in ('dns', 'dns.query', 'dns.exception', 'dns.inet', - 'dns.message', 'dns.name', 'dns.rdata', 'dns.rdataset', - 'dns.rdatatype', 'dns.resolver', 'dns.reversename'): + 'dns.message', 'dns.rdatatype', 'dns.resolver', + 'dns.reversename'): __imports.append('%(pkg)s = patcher.import_patched(\'%(pkg)s\', socket=_socket_nodns, time=time, select=select)' % dict(pkg=package)) exec '\n'.join(__imports)