X-Git-Url: https://review.fuel-infra.org/gitweb?a=blobdiff_plain;f=python-eventlet%2Feventlet%2Fbackdoor.py;fp=python-eventlet%2Feventlet%2Fbackdoor.py;h=9a6797a3ae0dc22abf5578db0c74ad68240e167d;hb=3dbfedbaa1a106967b7588f6ce50b89788837a33;hp=2067772427bdbe62a639e71b096ef6a9f9f89646;hpb=358bd9258c2b6d2ee74de4dfd07a5123107abad4;p=packages%2Ftrusty%2Fpython-eventlet.git diff --git a/python-eventlet/eventlet/backdoor.py b/python-eventlet/eventlet/backdoor.py index 2067772..9a6797a 100644 --- a/python-eventlet/eventlet/backdoor.py +++ b/python-eventlet/eventlet/backdoor.py @@ -4,6 +4,8 @@ from code import InteractiveConsole import errno import socket import sys +import errno +import traceback import eventlet from eventlet import hubs @@ -69,7 +71,12 @@ class SocketConsole(greenlets.greenlet): def finalize(self): # restore the state of the socket self.desc = None - print("backdoor closed to %s:%s" % self.hostport) + if len(self.hostport) >= 2: + host = self.hostport[0] + port = self.hostport[1] + print("backdoor closed to %s:%s" % (host, port,)) + else: + print('backdoor closed') def backdoor_server(sock, locals=None): @@ -81,7 +88,16 @@ def backdoor_server(sock, locals=None): of the interpreters. It can be convenient to stick important application variables in here. """ - print("backdoor server listening on %s:%s" % sock.getsockname()) + listening_on = sock.getsockname() + if sock.family == socket.AF_INET: + # Expand result to IP + port + listening_on = '%s:%s' % listening_on + elif sock.family == socket.AF_INET6: + ip, port, _, _ = listening_on + listening_on = '%s:%s' % (ip, port,) + # No action needed if sock.family == socket.AF_UNIX + + print("backdoor server listening on %s" % (listening_on,)) try: try: while True: @@ -102,10 +118,16 @@ def backdoor(conn_info, locals=None): (such as backdoor_server). """ conn, addr = conn_info - host, port = addr - print("backdoor to %s:%s" % (host, port)) + if conn.family == socket.AF_INET: + host, port = addr + print("backdoor to %s:%s" % (host, port)) + elif conn.family == socket.AF_INET6: + host, port, _, _ = addr + print("backdoor to %s:%s" % (host, port)) + else: + print('backdoor opened') fl = conn.makefile("rw") - console = SocketConsole(fl, (host, port), locals) + console = SocketConsole(fl, addr, locals) hub = hubs.get_hub() hub.schedule_call_global(0, console.switch)