| Index: third_party/twisted_8_1/twisted/names/tap.py
|
| diff --git a/third_party/twisted_8_1/twisted/names/tap.py b/third_party/twisted_8_1/twisted/names/tap.py
|
| deleted file mode 100644
|
| index f22f6c68622fa2fb4938817c78e94623c2fe4cf9..0000000000000000000000000000000000000000
|
| --- a/third_party/twisted_8_1/twisted/names/tap.py
|
| +++ /dev/null
|
| @@ -1,119 +0,0 @@
|
| -# Copyright (c) 2001-2004 Twisted Matrix Laboratories.
|
| -# See LICENSE for details.
|
| -
|
| -
|
| -"""
|
| -Domain Name Server
|
| -"""
|
| -
|
| -import os, traceback
|
| -
|
| -from twisted.python import usage
|
| -from twisted.names import dns
|
| -from twisted.application import internet, service
|
| -
|
| -from twisted.names import server
|
| -from twisted.names import authority
|
| -from twisted.names import secondary
|
| -
|
| -class Options(usage.Options):
|
| - optParameters = [
|
| - ["interface", "i", "", "The interface to which to bind"],
|
| - ["port", "p", "53", "The port on which to listen"],
|
| - ["resolv-conf", None, None,
|
| - "Override location of resolv.conf (implies --recursive)"],
|
| - ["hosts-file", None, None, "Perform lookups with a hosts file"],
|
| - ]
|
| -
|
| - optFlags = [
|
| - ["cache", "c", "Enable record caching"],
|
| - ["recursive", "r", "Perform recursive lookups"],
|
| - ["verbose", "v", "Log verbosely"],
|
| - ]
|
| -
|
| - zones = None
|
| - zonefiles = None
|
| -
|
| - def __init__(self):
|
| - usage.Options.__init__(self)
|
| - self['verbose'] = 0
|
| - self.bindfiles = []
|
| - self.zonefiles = []
|
| - self.secondaries = []
|
| -
|
| -
|
| - def opt_pyzone(self, filename):
|
| - """Specify the filename of a Python syntax zone definition"""
|
| - if not os.path.exists(filename):
|
| - raise usage.UsageError(filename + ": No such file")
|
| - self.zonefiles.append(filename)
|
| -
|
| - def opt_bindzone(self, filename):
|
| - """Specify the filename of a BIND9 syntax zone definition"""
|
| - if not os.path.exists(filename):
|
| - raise usage.UsageError(filename + ": No such file")
|
| - self.bindfiles.append(filename)
|
| -
|
| -
|
| - def opt_secondary(self, ip_domain):
|
| - """Act as secondary for the specified domain, performing
|
| - zone transfers from the specified IP (IP/domain)
|
| - """
|
| - args = ip_domain.split('/', 1)
|
| - if len(args) != 2:
|
| - raise usage.UsageError("Argument must be of the form IP/domain")
|
| - self.secondaries.append((args[0], [args[1]]))
|
| -
|
| - def opt_verbose(self):
|
| - """Increment verbosity level"""
|
| - self['verbose'] += 1
|
| -
|
| -
|
| - def postOptions(self):
|
| - if self['resolv-conf']:
|
| - self['recursive'] = True
|
| -
|
| - self.svcs = []
|
| - self.zones = []
|
| - for f in self.zonefiles:
|
| - try:
|
| - self.zones.append(authority.PySourceAuthority(f))
|
| - except Exception, e:
|
| - traceback.print_exc()
|
| - raise usage.UsageError("Invalid syntax in " + f)
|
| - for f in self.bindfiles:
|
| - try:
|
| - self.zones.append(authority.BindAuthority(f))
|
| - except Exception, e:
|
| - traceback.print_exc()
|
| - raise usage.UsageError("Invalid syntax in " + f)
|
| - for f in self.secondaries:
|
| - self.svcs.append(secondary.SecondaryAuthorityService(*f))
|
| - self.zones.append(self.svcs[-1].getAuthority())
|
| - try:
|
| - self['port'] = int(self['port'])
|
| - except ValueError:
|
| - raise usage.UsageError("Invalid port: %r" % (self['port'],))
|
| -
|
| -
|
| -def makeService(config):
|
| - import client, cache, hosts
|
| -
|
| - ca, cl = [], []
|
| - if config['cache']:
|
| - ca.append(cache.CacheResolver(verbose=config['verbose']))
|
| - if config['recursive']:
|
| - cl.append(client.createResolver(resolvconf=config['resolv-conf']))
|
| - if config['hosts-file']:
|
| - cl.append(hosts.Resolver(file=config['hosts-file']))
|
| -
|
| - f = server.DNSServerFactory(config.zones, ca, cl, config['verbose'])
|
| - p = dns.DNSDatagramProtocol(f)
|
| - f.noisy = 0
|
| - ret = service.MultiService()
|
| - for (klass, arg) in [(internet.TCPServer, f), (internet.UDPServer, p)]:
|
| - s = klass(config['port'], arg, interface=config['interface'])
|
| - s.setServiceParent(ret)
|
| - for svc in config.svcs:
|
| - svc.setServiceParent(ret)
|
| - return ret
|
|
|