예제 #1
0
파일: peer.py 프로젝트: GurovNik/tor
 def get_messages(self):
     while len(self.read_buffer) > 4 and self.healthy:
         if (not self.has_handshaked
                 and self._handle_handshake()) or self._handle_keep_alive():
             continue
         payload_length, = struct.unpack(">I", self.read_buffer[:4])
         total_length = payload_length + 4
         if len(self.read_buffer) < total_length:
             break
         else:
             payload = self.read_buffer[:total_length]
             self.read_buffer = self.read_buffer[total_length:]
         try:
             m = message.MessageDispatcher(payload).dispatch()
             if m:
                 yield m
         except:
             pass
예제 #2
0
    def get_messages(self):
        while len(self.read_buffer) > 4 and not self.to_remove:
            if (not self.has_handshaked
                    and self._handle_handshake()) or self._handle_keep_alive():
                continue

            payload_length, = struct.unpack(">I", self.read_buffer[:4])
            total_length = payload_length + 4

            if len(self.read_buffer) < total_length:
                break
            else:
                payload = self.read_buffer[:total_length]
                self.read_buffer = self.read_buffer[total_length:]

            try:
                yield message.MessageDispatcher(payload).dispatch()
            except message.WrongMessageException as e:
                logging.error(e.message)
예제 #3
0
파일: peer.py 프로젝트: gtm9/decTorrent
    def get_messages(self):
        while len(self.read_buffer) > 4 and self.healthy:
            if (not self.has_handshaked and self._handle_handshake()) or self._handle_keep_alive():
                continue

            payload_length, = struct.unpack(">I", self.read_buffer[:4])
            total_length = payload_length + 4

            if len(self.read_buffer) < total_length:
                break
            else:
                payload = self.read_buffer[:total_length]
                self.read_buffer = self.read_buffer[total_length:]

            try:
                received_message = message.MessageDispatcher(payload).dispatch()
                if received_message:
                    yield received_message
            except message.WrongMessageException as e:
                logging.exception(e.__str__())