def __init__(self, request, client_address, server): encodings = {"iso-latin-1-unix": "latin-1", "iso-utf-8-unix": "utf-8"} self.encoding = encodings.get(server.encoding, "utf-8") self.protocol = SwankProtocol(server.socket, locals=LOCALS, prompt=PROMPT) socketserver.BaseRequestHandler.__init__(self, request, client_address, server)
class SwankServerRequestHandler(socketserver.BaseRequestHandler): """Request handler for the SwankServer. Handle protocol requests from swank client by dispatching received data to SwankProtocol.dispatch and returns to the client whatever it replies. """ def __init__(self, request, client_address, server): encodings = { "iso-latin-1-unix": "latin-1", "iso-utf-8-unix": "utf-8" } self.encoding = encodings.get(server.encoding, "utf-8") self.protocol = SwankProtocol( server.socket, locals=LOCALS, prompt=PROMPT ) socketserver.BaseRequestHandler.__init__( self, request, client_address, server) def handle(self): logger.debug('handle') first = True while True: try: raw = self.request.recv(HEADER_LENGTH) logger.debug('raw()->"%s"', raw) if raw: length = int(raw, 16) else: logger.error('Empty header received') self.request.close() break; data = self.request.recv(length) logger.debug('recv()->"%s"', data) if first: ret = self.protocol.indentation_update() ret = ret.encode(self.encoding) logger.debug('send()->"%s"', ret) self.request.send(ret) data = data.decode(self.encoding) ret = self.protocol.dispatch(data) ret = ret.encode(self.encoding) self.request.send(ret) logger.debug('send()->"%s"', ret) first = False except socket.timeout as e: logger.error('Socket error', e) break
class SwankServerRequestHandler(socketserver.BaseRequestHandler): """Request handler for the SwankServer. Handle protocol requests from swank client by dispatching received data to SwankProtocol.dispatch and returns to the client whatever it replies. """ def __init__(self, request, client_address, server): encodings = {"iso-latin-1-unix": "latin-1", "iso-utf-8-unix": "utf-8"} self.encoding = encodings.get(server.encoding, "utf-8") self.protocol = SwankProtocol(server.socket, locals=LOCALS, prompt=PROMPT) socketserver.BaseRequestHandler.__init__(self, request, client_address, server) def handle(self): logging.debug('handle') first = True while True: try: raw = self.request.recv(HEADER_LENGTH) logging.debug('raw()->"%s"', raw) if raw: length = int(raw, 16) else: logging.error('Empty header received') self.request.close() break data = self.request.recv(length) logging.debug('recv()->"%s"', data) if first: ret = self.protocol.indentation_update() ret = ret.encode(self.encoding) logging.debug('send()->"%s"', ret) self.request.send(ret) data = data.decode(self.encoding) logging.debug('dispatching -> %s', data) ret = self.protocol.dispatch(data) logging.debug('dispatch -> %s', str(ret)) ret = ret.encode(self.encoding) self.request.send(ret) first = False except socket.timeout as e: logging.error('Socket error %s', str(e)) break
def __init__(self, request, client_address, server): encodings = { "iso-latin-1-unix": "latin-1", "iso-utf-8-unix": "utf-8" } self.encoding = encodings.get(server.encoding, "utf-8") self.protocol = SwankProtocol( server.socket, locals=LOCALS, prompt=PROMPT ) socketserver.BaseRequestHandler.__init__( self, request, client_address, server)