]> git.ipfire.org Git - thirdparty/dnspython.git/commitdiff
add dns.e164.query()
authorBob Halley <halley@dnspython.org>
Tue, 28 Mar 2006 02:01:38 +0000 (02:01 +0000)
committerBob Halley <halley@dnspython.org>
Tue, 28 Mar 2006 02:01:38 +0000 (02:01 +0000)
ChangeLog
dns/e164.py

index 79c2e735fc2d8db96d85119cc9efe600055817f3..746f296424df57bc73596321ba832b2ff4583a8a 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2006-03-27  Bob Halley  <halley@dnspython.org>
+
+       * Added dns.e164.query().  This function can be used to look for
+         NAPTR RRs for a specified number in several domains, e.g.:
+
+               dns.e164.query('16505551212',
+                              ['e164.dnspython.org.', 'e164.arpa.'])
+
 2006-03-26  Bob Halley  <halley@dnspython.org>
 
        * dns/resolver.py (Resolver.query): The resolver deleted from
index bcc7c4739fe53b6b30d0fb89ab5e7e53432cf0a2..832db24b4ad46e1d54c3604965bf43e2a2c9b8df 100644 (file)
@@ -13,7 +13,7 @@
 # ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
 # OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
 
-"""DNS E.164 Names.
+"""DNS E.164 helpers
 
 @var public_enum_domain: The DNS public ENUM domain, e164.arpa.
 @type public_enum_domain: dns.name.Name object
@@ -21,6 +21,7 @@
 
 import dns.exception
 import dns.name
+import dns.resolver
 
 public_enum_domain = dns.name.from_text('e164.arpa.')
 
@@ -59,3 +60,20 @@ def to_e164(name, origin=public_enum_domain, want_plus_prefix=True):
     if want_plus_prefix:
         text = '+' + text
     return text
+
+def query(number, domains, resolver=None):
+    """Look for NAPTR RRs for the specified number in the specified domains.
+
+    e.g. lookup('16505551212', ['e164.dnspython.org.', 'e164.arpa.'])
+    """
+    if resolver is None:
+        resolver = dns.resolver.get_default_resolver()
+    for domain in domains:
+        if isinstance(domain, (str, unicode)):
+            domain = dns.name.from_text(domain)
+        qname = dns.e164.from_e164(number, domain)
+        try:
+            return dns.resolver.query(qname, 'NAPTR')
+        except dns.resolver.NXDOMAIN:
+            pass
+    raise dns.resolver.NXDOMAIN