Index: third_party/twisted_8_1/twisted/names/common.py |
diff --git a/third_party/twisted_8_1/twisted/names/common.py b/third_party/twisted_8_1/twisted/names/common.py |
deleted file mode 100644 |
index b93769d42758a22f2f850aeb07bf02471aee2664..0000000000000000000000000000000000000000 |
--- a/third_party/twisted_8_1/twisted/names/common.py |
+++ /dev/null |
@@ -1,224 +0,0 @@ |
-# -*- test-case-name: twisted.names.test -*- |
-# Copyright (c) 2001-2004 Twisted Matrix Laboratories. |
-# See LICENSE for details. |
- |
- |
-import socket |
- |
-from twisted.names import dns |
-from twisted.internet import defer, error |
-from twisted.python import failure |
- |
-EMPTY_RESULT = (), (), () |
- |
-class ResolverBase: |
- typeToMethod = None |
- |
- def __init__(self): |
- self.typeToMethod = {} |
- for (k, v) in typeToMethod.items(): |
- self.typeToMethod[k] = getattr(self, v) |
- |
- def query(self, query, timeout = None): |
- try: |
- return self.typeToMethod[query.type](str(query.name), timeout) |
- except KeyError, e: |
- return defer.fail(failure.Failure(NotImplementedError(str(self.__class__) + " " + str(query.type)))) |
- |
- def _lookup(self, name, cls, type, timeout): |
- return defer.fail(NotImplementedError("ResolverBase._lookup")) |
- |
- def lookupAddress(self, name, timeout = None): |
- """ |
- @see: twisted.names.client.lookupAddress |
- """ |
- return self._lookup(name, dns.IN, dns.A, timeout) |
- |
- def lookupIPV6Address(self, name, timeout = None): |
- """ |
- @see: twisted.names.client.lookupIPV6Address |
- """ |
- return self._lookup(name, dns.IN, dns.AAAA, timeout) |
- |
- def lookupAddress6(self, name, timeout = None): |
- """ |
- @see: twisted.names.client.lookupAddress6 |
- """ |
- return self._lookup(name, dns.IN, dns.A6, timeout) |
- |
- def lookupMailExchange(self, name, timeout = None): |
- """ |
- @see: twisted.names.client.lookupMailExchange |
- """ |
- return self._lookup(name, dns.IN, dns.MX, timeout) |
- |
- def lookupNameservers(self, name, timeout = None): |
- """ |
- @see: twisted.names.client.lookupNameservers |
- """ |
- return self._lookup(name, dns.IN, dns.NS, timeout) |
- |
- def lookupCanonicalName(self, name, timeout = None): |
- """ |
- @see: twisted.names.client.lookupCanonicalName |
- """ |
- return self._lookup(name, dns.IN, dns.CNAME, timeout) |
- |
- def lookupMailBox(self, name, timeout = None): |
- """ |
- @see: twisted.names.client.lookupMailBox |
- """ |
- return self._lookup(name, dns.IN, dns.MB, timeout) |
- |
- def lookupMailGroup(self, name, timeout = None): |
- """ |
- @see: twisted.names.client.lookupMailGroup |
- """ |
- return self._lookup(name, dns.IN, dns.MG, timeout) |
- |
- def lookupMailRename(self, name, timeout = None): |
- """ |
- @see: twisted.names.client.lookupMailRename |
- """ |
- return self._lookup(name, dns.IN, dns.MR, timeout) |
- |
- def lookupPointer(self, name, timeout = None): |
- """ |
- @see: twisted.names.client.lookupPointer |
- """ |
- return self._lookup(name, dns.IN, dns.PTR, timeout) |
- |
- def lookupAuthority(self, name, timeout = None): |
- """ |
- @see: twisted.names.client.lookupAuthority |
- """ |
- return self._lookup(name, dns.IN, dns.SOA, timeout) |
- |
- def lookupNull(self, name, timeout = None): |
- """ |
- @see: twisted.names.client.lookupNull |
- """ |
- return self._lookup(name, dns.IN, dns.NULL, timeout) |
- |
- def lookupWellKnownServices(self, name, timeout = None): |
- """ |
- @see: twisted.names.client.lookupWellKnownServices |
- """ |
- return self._lookup(name, dns.IN, dns.WKS, timeout) |
- |
- def lookupService(self, name, timeout = None): |
- """ |
- @see: twisted.names.client.lookupService |
- """ |
- return self._lookup(name, dns.IN, dns.SRV, timeout) |
- |
- def lookupHostInfo(self, name, timeout = None): |
- """ |
- @see: twisted.names.client.lookupHostInfo |
- """ |
- return self._lookup(name, dns.IN, dns.HINFO, timeout) |
- |
- def lookupMailboxInfo(self, name, timeout = None): |
- """ |
- @see: twisted.names.client.lookupMailboxInfo |
- """ |
- return self._lookup(name, dns.IN, dns.MINFO, timeout) |
- |
- def lookupText(self, name, timeout = None): |
- """ |
- @see: twisted.names.client.lookupText |
- """ |
- return self._lookup(name, dns.IN, dns.TXT, timeout) |
- |
- def lookupResponsibility(self, name, timeout = None): |
- """ |
- @see: twisted.names.client.lookupResponsibility |
- """ |
- return self._lookup(name, dns.IN, dns.RP, timeout) |
- |
- def lookupAFSDatabase(self, name, timeout = None): |
- """ |
- @see: twisted.names.client.lookupAFSDatabase |
- """ |
- return self._lookup(name, dns.IN, dns.AFSDB, timeout) |
- |
- def lookupZone(self, name, timeout = None): |
- """ |
- @see: twisted.names.client.lookupZone |
- """ |
- return self._lookup(name, dns.IN, dns.AXFR, timeout) |
- |
- def lookupAllRecords(self, name, timeout = None): |
- """ |
- @see: twisted.names.client.lookupAllRecords |
- """ |
- return self._lookup(name, dns.IN, dns.ALL_RECORDS, timeout) |
- |
- def getHostByName(self, name, timeout = None, effort = 10): |
- """ |
- @see: twisted.names.client.getHostByName |
- """ |
- # XXX - respect timeout |
- return self.lookupAllRecords(name, timeout |
- ).addCallback(self._cbRecords, name, effort |
- ) |
- |
- def _cbRecords(self, (ans, auth, add), name, effort): |
- result = extractRecord(self, dns.Name(name), ans + auth + add, effort) |
- if not result: |
- raise error.DNSLookupError(name) |
- return result |
- |
-def extractRecord(resolver, name, answers, level = 10): |
- if not level: |
- return None |
- if hasattr(socket, 'inet_ntop'): |
- for r in answers: |
- if r.name == name and r.type == dns.A6: |
- return socket.inet_ntop(socket.AF_INET6, r.payload.address) |
- for r in answers: |
- if r.name == name and r.type == dns.AAAA: |
- return socket.inet_ntop(socket.AF_INET6, r.payload.address) |
- for r in answers: |
- if r.name == name and r.type == dns.A: |
- return socket.inet_ntop(socket.AF_INET, r.payload.address) |
- for r in answers: |
- if r.name == name and r.type == dns.CNAME: |
- result = extractRecord(resolver, r.payload.name, answers, level - 1) |
- if not result: |
- return resolver.getHostByName(str(r.payload.name), effort=level-1) |
- return result |
- # No answers, but maybe there's a hint at who we should be asking about this |
- for r in answers: |
- if r.type == dns.NS: |
- from twisted.names import client |
- r = client.Resolver(servers=[(str(r.payload.name), dns.PORT)]) |
- return r.lookupAddress(str(name) |
- ).addCallback(lambda (ans, auth, add): extractRecord(r, name, ans + auth + add, level - 1) |
- ).addBoth(lambda passthrough: (r.protocol.transport.stopListening(), passthrough)[1]) |
- |
-typeToMethod = { |
- dns.A: 'lookupAddress', |
- dns.AAAA: 'lookupIPV6Address', |
- dns.A6: 'lookupAddress6', |
- dns.NS: 'lookupNameservers', |
- dns.CNAME: 'lookupCanonicalName', |
- dns.SOA: 'lookupAuthority', |
- dns.MB: 'lookupMailBox', |
- dns.MG: 'lookupMailGroup', |
- dns.MR: 'lookupMailRename', |
- dns.NULL: 'lookupNull', |
- dns.WKS: 'lookupWellKnownServices', |
- dns.PTR: 'lookupPointer', |
- dns.HINFO: 'lookupHostInfo', |
- dns.MINFO: 'lookupMailboxInfo', |
- dns.MX: 'lookupMailExchange', |
- dns.TXT: 'lookupText', |
- |
- dns.RP: 'lookupResponsibility', |
- dns.AFSDB: 'lookupAFSDatabase', |
- dns.SRV: 'lookupService', |
- |
- dns.AXFR: 'lookupZone', |
- dns.ALL_RECORDS: 'lookupAllRecords', |
-} |