Index: third_party/twisted_8_1/twisted/conch/manhole_tap.py |
diff --git a/third_party/twisted_8_1/twisted/conch/manhole_tap.py b/third_party/twisted_8_1/twisted/conch/manhole_tap.py |
deleted file mode 100644 |
index a0e7d60a6145ea4bb3c034d4163f570e9cfbd9ca..0000000000000000000000000000000000000000 |
--- a/third_party/twisted_8_1/twisted/conch/manhole_tap.py |
+++ /dev/null |
@@ -1,128 +0,0 @@ |
-# Copyright (c) 2001-2004 Twisted Matrix Laboratories. |
-# See LICENSE for details. |
- |
-""" |
-TAP plugin for creating telnet- and ssh-accessible manhole servers. |
- |
-@author: U{Jp Calderone<mailto:exarkun@twistedmatrix.com>} |
-""" |
- |
-from zope.interface import implements |
- |
-from twisted.internet import protocol |
-from twisted.application import service, strports |
-from twisted.conch.ssh import session |
-from twisted.conch import interfaces as iconch |
-from twisted.cred import portal, checkers |
-from twisted.python import usage |
- |
-from twisted.conch.insults import insults |
-from twisted.conch import manhole, manhole_ssh, telnet |
- |
-class makeTelnetProtocol: |
- def __init__(self, portal): |
- self.portal = portal |
- |
- def __call__(self): |
- auth = telnet.AuthenticatingTelnetProtocol |
- args = (self.portal,) |
- return telnet.TelnetTransport(auth, *args) |
- |
-class chainedProtocolFactory: |
- def __init__(self, namespace): |
- self.namespace = namespace |
- |
- def __call__(self): |
- return insults.ServerProtocol(manhole.ColoredManhole, self.namespace) |
- |
-class _StupidRealm: |
- implements(portal.IRealm) |
- |
- def __init__(self, proto, *a, **kw): |
- self.protocolFactory = proto |
- self.protocolArgs = a |
- self.protocolKwArgs = kw |
- |
- def requestAvatar(self, avatarId, *interfaces): |
- if telnet.ITelnetProtocol in interfaces: |
- return (telnet.ITelnetProtocol, |
- self.protocolFactory(*self.protocolArgs, **self.protocolKwArgs), |
- lambda: None) |
- raise NotImplementedError() |
- |
-class Options(usage.Options): |
- optParameters = [ |
- ["telnetPort", "t", None, "strports description of the address on which to listen for telnet connections"], |
- ["sshPort", "s", None, "strports description of the address on which to listen for ssh connections"], |
- ["passwd", "p", "/etc/passwd", "name of a passwd(5)-format username/password file"]] |
- |
- def __init__(self): |
- usage.Options.__init__(self) |
- self.users = [] |
- self['namespace'] = None |
- |
- def opt_user(self, name): |
- self.users.append(name) |
- |
- def postOptions(self): |
- if self['telnetPort'] is None and self['sshPort'] is None: |
- raise usage.UsageError("At least one of --telnetPort and --sshPort must be specified") |
- |
-def makeService(options): |
- """Create a manhole server service. |
- |
- @type options: C{dict} |
- @param options: A mapping describing the configuration of |
- the desired service. Recognized key/value pairs are:: |
- |
- "telnetPort": strports description of the address on which |
- to listen for telnet connections. If None, |
- no telnet service will be started. |
- |
- "sshPort": strports description of the address on which to |
- listen for ssh connections. If None, no ssh |
- service will be started. |
- |
- "namespace": dictionary containing desired initial locals |
- for manhole connections. If None, an empty |
- dictionary will be used. |
- |
- "passwd": Name of a passwd(5)-format username/password file. |
- |
- @rtype: L{twisted.application.service.IService} |
- @return: A manhole service. |
- """ |
- |
- svc = service.MultiService() |
- |
- namespace = options['namespace'] |
- if namespace is None: |
- namespace = {} |
- |
- checker = checkers.FilePasswordDB(options['passwd']) |
- |
- if options['telnetPort']: |
- telnetRealm = _StupidRealm(telnet.TelnetBootstrapProtocol, |
- insults.ServerProtocol, |
- manhole.ColoredManhole, |
- namespace) |
- |
- telnetPortal = portal.Portal(telnetRealm, [checker]) |
- |
- telnetFactory = protocol.ServerFactory() |
- telnetFactory.protocol = makeTelnetProtocol(telnetPortal) |
- telnetService = strports.service(options['telnetPort'], |
- telnetFactory) |
- telnetService.setServiceParent(svc) |
- |
- if options['sshPort']: |
- sshRealm = manhole_ssh.TerminalRealm() |
- sshRealm.chainedProtocolFactory = chainedProtocolFactory(namespace) |
- |
- sshPortal = portal.Portal(sshRealm, [checker]) |
- sshFactory = manhole_ssh.ConchFactory(sshPortal) |
- sshService = strports.service(options['sshPort'], |
- sshFactory) |
- sshService.setServiceParent(svc) |
- |
- return svc |