コード例 #1
0
ファイル: server.py プロジェクト: dastels/ulisp-swank
 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)
コード例 #2
0
ファイル: server.py プロジェクト: fgallina/swank-python
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
コード例 #3
0
ファイル: server.py プロジェクト: dastels/ulisp-swank
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
コード例 #4
0
ファイル: server.py プロジェクト: fgallina/swank-python
 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)