aboutsummaryrefslogtreecommitdiffstats
path: root/lib/python2.7/site-packages/Twisted-12.2.0-py2.7-linux-x86_64.egg/twisted/manhole/telnet.py
diff options
context:
space:
mode:
Diffstat (limited to 'lib/python2.7/site-packages/Twisted-12.2.0-py2.7-linux-x86_64.egg/twisted/manhole/telnet.py')
-rwxr-xr-xlib/python2.7/site-packages/Twisted-12.2.0-py2.7-linux-x86_64.egg/twisted/manhole/telnet.py117
1 files changed, 0 insertions, 117 deletions
diff --git a/lib/python2.7/site-packages/Twisted-12.2.0-py2.7-linux-x86_64.egg/twisted/manhole/telnet.py b/lib/python2.7/site-packages/Twisted-12.2.0-py2.7-linux-x86_64.egg/twisted/manhole/telnet.py
deleted file mode 100755
index d63b3a6b..00000000
--- a/lib/python2.7/site-packages/Twisted-12.2.0-py2.7-linux-x86_64.egg/twisted/manhole/telnet.py
+++ /dev/null
@@ -1,117 +0,0 @@
-# Copyright (c) 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