| OLD | NEW |
| (Empty) |
| 1 | |
| 2 # Copyright (c) 2001-2004 Twisted Matrix Laboratories. | |
| 3 # See LICENSE for details. | |
| 4 | |
| 5 | |
| 6 """ | |
| 7 I am the support module for making a manhole server with mktap. | |
| 8 """ | |
| 9 | |
| 10 from twisted.manhole import service | |
| 11 from twisted.spread import pb | |
| 12 from twisted.python import usage, util | |
| 13 from twisted.cred import portal, checkers | |
| 14 from twisted.application import strports | |
| 15 import os, sys | |
| 16 | |
| 17 class Options(usage.Options): | |
| 18 synopsis = "mktap manhole [options]" | |
| 19 optParameters = [ | |
| 20 ["user", "u", "admin", "Name of user to allow to log in"], | |
| 21 ["port", "p", str(pb.portno), "Port to listen on"], | |
| 22 ] | |
| 23 | |
| 24 optFlags = [ | |
| 25 ["tracebacks", "T", "Allow tracebacks to be sent over the network"], | |
| 26 ] | |
| 27 zsh_actions = {"user" : "_users"} | |
| 28 | |
| 29 def opt_password(self, password): | |
| 30 """Required. '-' will prompt or read a password from stdin. | |
| 31 """ | |
| 32 # If standard input is a terminal, I prompt for a password and | |
| 33 # confirm it. Otherwise, I use the first line from standard | |
| 34 # input, stripping off a trailing newline if there is one. | |
| 35 if password in ('', '-'): | |
| 36 self['password'] = util.getPassword(confirm=1) | |
| 37 else: | |
| 38 self['password'] = password | |
| 39 opt_w = opt_password | |
| 40 | |
| 41 def postOptions(self): | |
| 42 if not self.has_key('password'): | |
| 43 self.opt_password('-') | |
| 44 | |
| 45 def makeService(config): | |
| 46 port, user, password = config['port'], config['user'], config['password'] | |
| 47 p = portal.Portal( | |
| 48 service.Realm(service.Service(config["tracebacks"], config.get('namespac
e'))), | |
| 49 [checkers.InMemoryUsernamePasswordDatabaseDontUse(**{user: password})] | |
| 50 ) | |
| 51 return strports.service(port, pb.PBServerFactory(p, config["tracebacks"])) | |
| OLD | NEW |