| Index: third_party/twisted_8_1/twisted/manhole/telnet.py
|
| diff --git a/third_party/twisted_8_1/twisted/manhole/telnet.py b/third_party/twisted_8_1/twisted/manhole/telnet.py
|
| deleted file mode 100644
|
| index 2e6236471b1d16a7301f554e69e88f0e6a804e1a..0000000000000000000000000000000000000000
|
| --- a/third_party/twisted_8_1/twisted/manhole/telnet.py
|
| +++ /dev/null
|
| @@ -1,117 +0,0 @@
|
| -# Copyright (c) 2001-2004 Twisted Matrix Laboratories.
|
| -# See LICENSE for details.
|
| -
|
| -
|
| -"""Telnet-based shell."""
|
| -
|
| -# twisted imports
|
| -from twisted.protocols import telnet
|
| -from twisted.internet import protocol
|
| -from twisted.python import log, failure
|
| -
|
| -# system imports
|
| -import string, copy, sys
|
| -from cStringIO import StringIO
|
| -
|
| -
|
| -class Shell(telnet.Telnet):
|
| - """A Python command-line shell."""
|
| -
|
| - def connectionMade(self):
|
| - telnet.Telnet.connectionMade(self)
|
| - self.lineBuffer = []
|
| -
|
| - def loggedIn(self):
|
| - self.transport.write(">>> ")
|
| -
|
| - def checkUserAndPass(self, username, password):
|
| - return ((self.factory.username == username) and (password == self.factory.password))
|
| -
|
| - def write(self, data):
|
| - """Write some data to the transport.
|
| - """
|
| - self.transport.write(data)
|
| -
|
| - def telnet_Command(self, cmd):
|
| - if self.lineBuffer:
|
| - if not cmd:
|
| - cmd = string.join(self.lineBuffer, '\n') + '\n\n\n'
|
| - self.doCommand(cmd)
|
| - self.lineBuffer = []
|
| - return "Command"
|
| - else:
|
| - self.lineBuffer.append(cmd)
|
| - self.transport.write("... ")
|
| - return "Command"
|
| - else:
|
| - self.doCommand(cmd)
|
| - return "Command"
|
| -
|
| - def doCommand(self, cmd):
|
| -
|
| - # TODO -- refactor this, Reality.author.Author, and the manhole shell
|
| - #to use common functionality (perhaps a twisted.python.code module?)
|
| - fn = '$telnet$'
|
| - result = None
|
| - try:
|
| - out = sys.stdout
|
| - sys.stdout = self
|
| - try:
|
| - code = compile(cmd,fn,'eval')
|
| - result = eval(code, self.factory.namespace)
|
| - except:
|
| - try:
|
| - code = compile(cmd, fn, 'exec')
|
| - exec code in self.factory.namespace
|
| - except SyntaxError, e:
|
| - if not self.lineBuffer and str(e)[:14] == "unexpected EOF":
|
| - self.lineBuffer.append(cmd)
|
| - self.transport.write("... ")
|
| - return
|
| - else:
|
| - failure.Failure().printTraceback(file=self)
|
| - log.deferr()
|
| - self.write('\r\n>>> ')
|
| - return
|
| - except:
|
| - io = StringIO()
|
| - failure.Failure().printTraceback(file=self)
|
| - log.deferr()
|
| - self.write('\r\n>>> ')
|
| - return
|
| - finally:
|
| - sys.stdout = out
|
| -
|
| - self.factory.namespace['_'] = result
|
| - if result is not None:
|
| - self.transport.write(repr(result))
|
| - self.transport.write('\r\n')
|
| - self.transport.write(">>> ")
|
| -
|
| -
|
| -
|
| -class ShellFactory(protocol.Factory):
|
| - username = "admin"
|
| - password = "admin"
|
| - protocol = Shell
|
| - service = None
|
| -
|
| - def __init__(self):
|
| - self.namespace = {
|
| - 'factory': self,
|
| - 'service': None,
|
| - '_': None
|
| - }
|
| -
|
| - def setService(self, service):
|
| - self.namespace['service'] = self.service = service
|
| -
|
| - def __getstate__(self):
|
| - """This returns the persistent state of this shell factory.
|
| - """
|
| - dict = self.__dict__
|
| - ns = copy.copy(dict['namespace'])
|
| - dict['namespace'] = ns
|
| - if ns.has_key('__builtins__'):
|
| - del ns['__builtins__']
|
| - return dict
|
|
|