summaryrefslogtreecommitdiff
path: root/dns
diff options
context:
space:
mode:
authorkimbo <kimballleavitt@gmail.com>2019-12-26 14:54:31 -0700
committerkimbo <kimballleavitt@gmail.com>2019-12-26 14:54:31 -0700
commitbbf0cfd239ffa6deeb67a4787bd292e9a972af74 (patch)
treeecad2f13e4f6f570af3c36a5a22cfb0c61e8ce7d /dns
parenta3193c831f97854e82db28492333d1aa269b1a12 (diff)
downloaddnspython-bbf0cfd239ffa6deeb67a4787bd292e9a972af74.tar.gz
make sure Resolver.nameservers is a list or str
validate if assignment of Resolver.nameservers is a list, a str (in which case it will be converted to a list), or None
Diffstat (limited to 'dns')
-rw-r--r--dns/resolver.py21
-rw-r--r--dns/resolver.pyi2
2 files changed, 22 insertions, 1 deletions
diff --git a/dns/resolver.py b/dns/resolver.py
index c49598f..2ed0ebc 100644
--- a/dns/resolver.py
+++ b/dns/resolver.py
@@ -1079,6 +1079,27 @@ class Resolver(object):
self.flags = flags
+ @property
+ def nameservers(self):
+ return self._nameservers
+
+ @nameservers.setter
+ def nameservers(self, nameservers):
+ """
+ :param nameservers: can be a ``str``, ``list``, or None.
+ If it's a ``str``, it will converted to a list.
+ :raise ValueError: if `nameservers` is anything other than \
+ ``str``, ``list``, or None.
+ """
+ if isinstance(nameservers, str):
+ self._nameservers = [nameservers]
+ elif isinstance(nameservers, list):
+ self._nameservers = nameservers
+ elif nameservers is None:
+ self._nameservers = None
+ else:
+ raise ValueError('nameservers must be either a str, a list, or None'
+ ' (not a {})'.format(type(nameservers)))
#: The default resolver.
default_resolver = None
diff --git a/dns/resolver.pyi b/dns/resolver.pyi
index 06742fe..c68d04a 100644
--- a/dns/resolver.pyi
+++ b/dns/resolver.pyi
@@ -33,7 +33,7 @@ def zone_for_name(name, rdclass : int = rdataclass.IN, tcp=False, resolver : Opt
...
class Resolver:
- def __init__(self, configure):
+ def __init__(self, filename : Optional[str] = '/etc/resolv.conf', configure : Optional[bool] = True):
self.nameservers : List[str]
def query(self, qname : str, rdtype : Union[int,str] = rdatatype.A, rdclass : Union[int,str] = rdataclass.IN,
tcp : bool = False, source : Optional[str] = None, raise_on_no_answer=True, source_port : int = 0):