| Index: third_party/twisted_8_1/twisted/names/cache.py
|
| diff --git a/third_party/twisted_8_1/twisted/names/cache.py b/third_party/twisted_8_1/twisted/names/cache.py
|
| deleted file mode 100644
|
| index 3f16d27996aa2be29a56fbc02eaa8bc47cabbb6c..0000000000000000000000000000000000000000
|
| --- a/third_party/twisted_8_1/twisted/names/cache.py
|
| +++ /dev/null
|
| @@ -1,96 +0,0 @@
|
| -# -*- test-case-name: twisted.names.test -*-
|
| -# Copyright (c) 2001-2004 Twisted Matrix Laboratories.
|
| -# See LICENSE for details.
|
| -
|
| -
|
| -import time
|
| -
|
| -from zope.interface import implements
|
| -
|
| -from twisted.names import dns
|
| -from twisted.python import failure, log
|
| -from twisted.internet import interfaces, defer
|
| -
|
| -import common
|
| -
|
| -class CacheResolver(common.ResolverBase):
|
| - """A resolver that serves records from a local, memory cache."""
|
| -
|
| - implements(interfaces.IResolver)
|
| -
|
| - cache = None
|
| -
|
| - def __init__(self, cache = None, verbose = 0):
|
| - common.ResolverBase.__init__(self)
|
| -
|
| - if cache is None:
|
| - cache = {}
|
| - self.cache = cache
|
| - self.verbose = verbose
|
| - self.cancel = {}
|
| -
|
| -
|
| - def __setstate__(self, state):
|
| - self.__dict__ = state
|
| -
|
| - now = time.time()
|
| - for (k, (when, (ans, add, ns))) in self.cache.items():
|
| - diff = now - when
|
| - for rec in ans + add + ns:
|
| - if rec.ttl < diff:
|
| - del self.cache[k]
|
| - break
|
| -
|
| -
|
| - def __getstate__(self):
|
| - for c in self.cancel.values():
|
| - c.cancel()
|
| - self.cancel.clear()
|
| - return self.__dict__
|
| -
|
| -
|
| - def _lookup(self, name, cls, type, timeout):
|
| - now = time.time()
|
| - q = dns.Query(name, type, cls)
|
| - try:
|
| - when, (ans, auth, add) = self.cache[q]
|
| - except KeyError:
|
| - if self.verbose > 1:
|
| - log.msg('Cache miss for ' + repr(name))
|
| - return defer.fail(failure.Failure(dns.DomainError(name)))
|
| - else:
|
| - if self.verbose:
|
| - log.msg('Cache hit for ' + repr(name))
|
| - diff = now - when
|
| - return defer.succeed((
|
| - [dns.RRHeader(str(r.name), r.type, r.cls, r.ttl - diff, r.payload) for r in ans],
|
| - [dns.RRHeader(str(r.name), r.type, r.cls, r.ttl - diff, r.payload) for r in auth],
|
| - [dns.RRHeader(str(r.name), r.type, r.cls, r.ttl - diff, r.payload) for r in add]
|
| - ))
|
| -
|
| -
|
| - def lookupAllRecords(self, name, timeout = None):
|
| - return defer.fail(failure.Failure(dns.DomainError(name)))
|
| -
|
| -
|
| - def cacheResult(self, query, payload):
|
| - if self.verbose > 1:
|
| - log.msg('Adding %r to cache' % query)
|
| -
|
| - self.cache[query] = (time.time(), payload)
|
| -
|
| - if self.cancel.has_key(query):
|
| - self.cancel[query].cancel()
|
| -
|
| - s = list(payload[0]) + list(payload[1]) + list(payload[2])
|
| - m = s[0].ttl
|
| - for r in s:
|
| - m = min(m, r.ttl)
|
| -
|
| - from twisted.internet import reactor
|
| - self.cancel[query] = reactor.callLater(m, self.clearEntry, query)
|
| -
|
| -
|
| - def clearEntry(self, query):
|
| - del self.cache[query]
|
| - del self.cancel[query]
|
|
|