diff options
author | Bob Halley <halley@play-bow.org> | 2014-06-21 09:06:16 -0700 |
---|---|---|
committer | Bob Halley <halley@play-bow.org> | 2014-06-21 09:06:16 -0700 |
commit | 00448303c855cfdad4506ed77090e63d67e1e10f (patch) | |
tree | c096635445e40ccf076706b6b8e263ca6655189f | |
parent | 5b32e65203731912aaa2067df55175c1bd5f8a8e (diff) | |
parent | bfbe766c8e34a258241012da5ff6c15d8142261a (diff) | |
download | dnspython-00448303c855cfdad4506ed77090e63d67e1e10f.tar.gz |
Merge pull request #58 from underrun/options_rotate
add options rotate handling
-rw-r--r-- | dns/resolver.py | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/dns/resolver.py b/dns/resolver.py index 934d39b..88419e9 100644 --- a/dns/resolver.py +++ b/dns/resolver.py @@ -21,6 +21,7 @@ import socket import sys import time +import random try: import threading as _threading @@ -508,6 +509,7 @@ class Resolver(object): self.cache = None self.flags = None self.retry_servfail = False + self.rotate = False def read_resolv_conf(self, f): """Process f as a file in the /etc/resolv.conf format. If f is @@ -538,6 +540,9 @@ class Resolver(object): elif tokens[0] == 'search': for suffix in tokens[1:]: self.search.append(dns.name.from_text(suffix)) + elif tokens[0] == 'options': + if len(tokens) == 2 and tokens[1] == 'rotate': + self.rotate = True finally: if want_close: f.close() @@ -811,6 +816,8 @@ class Resolver(object): # make a copy of the servers list so we can alter it later. # nameservers = self.nameservers[:] + if self.rotate: + random.shuffle(nameservers) backoff = 0.10 while response is None: if len(nameservers) == 0: |