コード例 #1
0
ファイル: server.py プロジェクト: hanleybrand/vic-mdid
    def handle_read(self):
        data = self.recv(8192)
        if not data:
            self.close()
            return

        self.in_buffer += data

        commands = []
        while True:
            try:
                func, args, cmd_len = parse_command(self.in_buffer, response=False)
            except ProtocolError, exc:
                logging.error("[%s] ProtocolError: %s" % (self.addr, str(exc)))
                self.close()
                return

            if not func:
                break

            self.handle_command(func, args)

            self.in_buffer = buffer(self.in_buffer, cmd_len)
コード例 #2
0
            if exc.args[0] == errno.EWOULDBLOCK:
                return
            if exc.args[0] == errno.ECONNRESET:
                data = None
            else:
                raise

        if not data:
            self.mark_dead()
            raise self.ConnectionError("connection died")

        self.in_buffer += data

        commands = []
        while len(self.in_buffer) >= 12:
            func, args, cmd_len = parse_command(self.in_buffer)
            if not cmd_len:
                break

            commands.append((func, args))

            self.in_buffer = buffer(self.in_buffer, cmd_len)
        return commands

    def send(self):
        assert self.connected

        if len(self.out_buffer) == 0:
            return 0

        try:
コード例 #3
0
ファイル: connection.py プロジェクト: hanleybrand/vic-mdid
            if exc.args[0] == errno.EWOULDBLOCK:
                return
            if exc.args[0] == errno.ECONNRESET:
                data = None
            else:
                raise

        if not data:
            self.mark_dead()
            raise self.ConnectionError("connection died")

        self.in_buffer += data

        commands = []
        while len(self.in_buffer) >= 12:
            func, args, cmd_len = parse_command(self.in_buffer)
            if not cmd_len:
                break

            commands.append((func, args))

            self.in_buffer = buffer(self.in_buffer, cmd_len)
        return commands

    def send(self):
        assert self.connected

        if len(self.out_buffer) == 0:
            return 0

        try: